Preheat the oven to 350°F (175°C). Line a standard 12-cup muffin pan with paper liners.
Whisk together the flour, baking powder, baking soda, salt, cinnamon, ginger, nutmeg, and cloves in a medium bowl.
In a large bowl, beat the softened butter, granulated sugar, and brown sugar until pale and fluffy, about 2 to 3 minutes.
Add the eggs one at a time, mixing well after each addition. Mix in the vanilla extract.
Add the dry ingredients in three additions, alternating with the buttermilk. Mix on low speed and stop as soon as the batter comes together. Do not overmix.
Divide the batter evenly among the cupcake liners, filling each about two-thirds full.
Bake for 18 to 22 minutes, or until the tops spring back gently and a toothpick inserted in the center comes out clean or with a few moist crumbs.
Let the cupcakes cool in the pan for about 5 minutes, then transfer them to a wire rack. Cool completely before frosting.
To make the buttercream, beat the softened butter until smooth and creamy. Gradually add the sifted powdered sugar while mixing on low speed.
Add the vanilla extract and salt. Gradually add the cream or milk, then beat on medium-high speed for 2 to 3 minutes until light and fluffy.
Pipe or spread the vanilla buttercream over the completely cooled cupcakes.
Finish with a light sprinkle of cinnamon or your preferred decoration.