1. For the cake, preheat the oven to 350°F. Grease two 9-inch round cake pans and line the bottoms of the pans with parchment paper.
2. Whisk the oil, eggs, brown sugar, granulated sugar and vanilla in a large bowl until blended.
3. In a separate bowl, sift the flour, baking powder, cinnamon, baking soda, salt, allspice and cloves. Stir in the grated carrot to coat it with the flour (this will help extract the most colour. Add this to the wet mixture and stir until evenly blended (the batter will be wet). Stir in the walnut pieces or raisins, if using.
4. Divide this between the 2 pans and bake the cakes for 25 to 30 minutes, until a skewer inserted in the centre of the cake comes out clean. Cool the cake for 30 minutes in their pans, then turn out onto a cooling rack to cool completely.
5. For the frosting, beat the cream cheese and butter until smooth. Add half of the icing sugar and beat until smooth. Beat in the vanilla and lemon juice and then beat in the remaining icing sugar until light and fluffy.
6. To assemble the cake, peel the parchment paper from the cake layers and place one layer onto a plate or platter. Spread the top with a generous layer of frosting and top with the second cake.
8. Frosting the top and sides of the cakes and use your spatula to create swirls in the frosting. Sprinkle a few walnut pieces on the top of the cake as garnish, or press the walnut pieces onto the sides of the cake.
9. The cake will keep, refrigerated, for up to 3 days.