Preheat your oven to 350°F and position a rack in the center. Grease two 8-inch round cake tins (or similar size) and line the bottoms with parchment paper for easy removal. Finely grate your carrots into approximately 1/8-inch shreds and set aside. Crush the walnuts for the batter into roughly 1/4-inch pieces. Measure out your dry ingredients (flour, baking powder, allspice, ginger, and cinnamon) into a small bowl and whisk together to distribute the leavening and spices evenly.
In a large mixing bowl, combine the room-temperature eggs, sunflower oil, and muscovado sugar. Using an electric mixer on medium-high speed, beat for 2-3 minutes until the mixture becomes thick, pale, and noticeably increased in volume—this aeration is crucial for a light, tender crumb. I like to use room-temperature eggs here because they incorporate more air and create a better texture in gluten-free cakes, which can otherwise feel dense.
Add the dry ingredient mixture from Step 1 to the batter and fold gently with a spatula until just combined—do not overmix, as this can develop gluten-like structure and toughen the cake. Fold in the grated carrots until evenly distributed, then gently fold in the crushed walnuts. The batter should come together with no visible streaks of flour.
Divide the batter evenly between the two prepared tins, smoothing the tops with a spatula. Bake for 30-35 minutes, or until a toothpick inserted into the center comes out with just a few moist crumbs (not completely dry). The cakes are done when the edges are pulling away slightly from the sides of the tin. Remove from the oven and let cool in the tins for 20 minutes before turning out onto a wire rack to cool completely—this resting time allows the structure to set properly before unmolding.
While the cakes cool, make the frosting by combining the dairy-free cream cheese and dairy spread in a bowl. Using an electric mixer on medium speed, beat until smooth and creamy, about 1 minute. Add the sifted icing sugar gradually, mixing on low speed to avoid creating clouds of sugar dust. Add the vanilla essence and mix until fully incorporated and the frosting is smooth and spreadable. I prefer Kite Hill cream cheese here because it whips to a better texture without the graininess that some dairy-free alternatives can have. Refrigerate the frosting for 30-60 minutes until it reaches a firm, spreadable consistency.
Place the first cooled cake layer on a serving plate or cake board. Spread approximately half of the frosting from Step 5 evenly over the top using an offset spatula or the back of a spoon. Place the second cake layer on top, pressing gently to secure. Spread the remaining frosting over the top and sides of the cake, creating an even crumb coat. Sprinkle the toasted walnuts over the top for garnish. Let the cake sit at room temperature for 15-20 minutes before serving so the frosting softens slightly.