Preheat the oven to 180 C / Gas 4. Grease and line two (20cm) cake tins with baking parchment.
Beat the margarine and sugar together until light and fluffy. Add the eggs and beat well after each addition. Add the vanilla extract and mix well.
In a separate bowl, sift together the flour, baking powder, walnuts and spices and mix well. Fold into the wet ingredients, then add the carrot and zest of 2 oranges. Divide the cake mixture equally between the two prepared cake tins.
Bake in the preheated oven for 25 to 35 minutes, or until a skewer inserted into the centre comes out clean. Remove from the oven.
Meanwhile, mix together the remaining zest, orange juice, cream cheese and icing sugar.
Place the first cake layer on a serving plate then spread over half of the icing, shaving a little cake off the top if necessary to make a flat base. Place the next layer on top then spread the remaining icing on top. Slice and serve.