Preheat the oven to 350°F / 175°C. Line a muffin tin with six parchment liners.
Add the flour, baking powder, salt, spices, sugar, and cubed room temperature butter into a medium sized mixing bowl. Beat the mixture together with a hand or stand mixer until no large clumps of butter remain.
Add in the molasses, oil, egg, vanilla, sour cream and milk. Whisk the mixture together just until a cohesive batter forms.
Portion out the cupcakes into the six parchment liners. Bake for 15-20 minutes, until a toothpick inserted in the center of the cupcakes comes out with only a few moist crumbs on it.
Allow the cupcakes to completely cool down to room temperature before frosting them.
Cream Cheese Frosting
In a small mixing bowl, beat together the butter, cream cheese, and salt until the mixture is smooth. Then, slowly beat in the powdered sugar, followed by the vanilla.
Top the cupcakes with the cream cheese frosting. If you want to decorate the cupcakes like the photos (optional), pour some crushed walnuts on to a plate, then turn the cupcakes on their sides and roll the frosting on the walnuts. Top with a little gingerbread cookie, then serve and enjoy!