Preheat the oven to 180°C (fan) / 350°F / Gas Mark 4. Grease two 23cm (9 inch) cake tins and line the bottoms with baking parchment / greaseproof paper.
Peel and trim the carrots and grate them into a bowl. Finely chop the walnuts and add to the carrots. Grate the zest of the orange into the bowl, and finally weigh the sultanas and add to the bowl.
Next, put the flour, baking powder, sugar, nutmeg, cinnamon and salt into a large bowl.
Mix the soya milk and rapeseed oil in a jug, then tip them into the large bowl with the dry ingredients. Mix (by hand) until combined and the batter is fairly smooth.
Tip in the carrot, walnuts, orange zest and sultanas and stir until fully combined.
Bang the bowl firmly onto the work surface (this stops the raising agents starting to work too early). Divide the cake mixture between the two tins, and bang each tin on the work surface once again, (you will see tiny bubbles come to the surface).
Bake for 25-30 minutes until a knife or skewer comes out clean. Leave to cool in the tin for 5 minutes, then turn out onto a cooling rack, peel off the paper and leave until fully cool.
TOP TIP: If you have time, the cake will be even better if you now put it in an airtight container or tin overnight. The crust will become soft and the cake will become more moist.
For the icing:
Place the icing sugar, margarine and cream cheese into a large bowl (or mixer), and beat together until completely smooth. Add the soya milk one tablespoon at a time until the icing is light and fluffy.
Sandwich the two cakes together with a layer of icing in the middle (use about one third of the icing for this), and spread the remaining icing over the top of the cake. Sprinkle with chopped pistachios if you wish, or any other chopped nuts.