Making the Cake
Preheat oven to 160C (320F). Grease and flour two 20cm (8-inch) round cake pans.
In a large bowl, whisk together flour, baking soda, cinnamon, nutmeg, ginger, and salt.
In a separate bowl, whisk together oil, sugar, eggs, and vanilla extract until well combined.
Add the wet ingredients to the dry ingredients and mix until just combined. Do not overmix.
Fold in grated carrots, nuts, and raisins (if using).
Divide the batter evenly between the prepared cake pans.
Bake for 50-55 minutes, or until a wooden skewer inserted into the center comes out clean.
Let the cakes cool in the pans for 10 minutes before inverting them onto a wire rack to cool completely.
Making the Cream Cheese Frosting
In a large bowl, beat the softened butter and cream cheese together until smooth and creamy.
Gradually add the sifted powdered sugar, beating until smooth and well combined.
Stir in the vanilla extract.
Assembling the Cake
Once the cakes are completely cool, trim the tops to create a flat surface if necessary.
Place one cake layer on a serving plate and spread with a generous layer of cream cheese frosting.
Top with the second cake layer and frost the top and sides of the cake with the remaining frosting.
Decorate as desired (e.g., with chopped nuts, carrot shavings).
Refrigerate for at least 30 minutes to allow the frosting to set before serving.
Optional Tips: For a richer flavor, brown the butter for the frosting before softening. Substitute allspice for any of the other spices. If you don't have cake pans, a 9x13 inch baking pan can be used, adjust baking time accordingly.