Preheat Oven & Line Tin: Preheat the oven to 356ºF (180ºC). Line a 9-inch x 5-inch loaf tin with parchment paper and set aside.
Combine Dry Ingredients: In a medium-size mixing bowl, add the flour, baking powder, cinnamon, allspice, nutmeg, ginger, and salt. Whisk until well combined. Set aside.
Beat Butter and Sugar: In a separate large mixing bowl, add the softened butter and both sugars. Beat on medium-high speed for 2 minutes until pale and creamy. Scrape down the sides.
Incorporate Eggs: Add the eggs one at a time, beating for 15 seconds after each addition. Scrape the sides of the bowl.
Mix in Wet Ingredients: Pour in the oil and vanilla and beat for low speed for 20 seconds to combine.
Beat in Carrots: Add the grated carrot and beat on low speed for 15 seconds to incorporate.
Combine with Dry Ingredients: Add the dry flour mixture and beat on low-medium speed until incorporated. Avoid over-mixing. Fold in any excess flour around the sides of the bowl with a rubber spatula.
Fold in Walnuts: Gently fold in the chopped walnuts, the batter will be thick.
Transfer Batter: Spoon the batter into the prepared loaf tin.
Bake: Bake for 45-50 minutes until a skewer inserted into the middle comes out clean or with a few moist crumbs. Remove from the oven and allow to cool in the pan for 15 minutes.
Cool: Transfer loaf to a wire rack to cool completely before adding the frosting.