Preheat the oven to 180c and line a standard 2lb loaf tin with parchment, letting it overhang for easy lifting.
In a large bowl, whisk together the flour, baking powder, bicarbonate of soda, salt, cinnamon and nutmeg.
Stir in the grated carrots, dates, ginger and walnuts so they’re coated in the flour mixture.
In another bowl, whisk the sugar with the coconut oil, milk, orange juice and vanilla until smooth.
Pour the wet ingredients into the dry and gently fold until just combined to make a thick batter.
Spoon the mixture into the prepared tin, smooth the top and bake for 45–50 minutes, until a skewer comes out clean.
Leave to cool in the tin for 10 minutes, then turn out onto a wire rack and cool completely before frosting.
To make the frosting, beat the cream cheese and butter together until smooth, then gradually mix in the icing sugar.
Stir through the orange zest and vanilla then spread generously over the cooled cake.
Finally scatter a few extra chopped walnuts on top.