Heat and line: Set the oven to 350°F. Line a 12-cup muffin tin with paper liners.
Cream until pale: Beat the butter on its own for about 30 seconds until smooth, then add the sugar and beat 4–5 minutes until pale, fluffy, and ribbon-like.
Add the eggs one by one: Beat in the eggs one at a time, mixing well after each, then beat in the vanilla extract. If the mixture starts to split, stir in a spoonful of the measured flour to bring it back together.
Whisk the dry ingredients: In a separate bowl, whisk the flour, baking powder, and salt together.
Alternate wet and dry: Add the flour mixture in three parts, alternating with the milk in two parts, mixing on low just until each addition disappears.
Fill two-thirds and settle: Divide the batter among the 12 liners, filling each about two-thirds full. Tap the tin firmly on the counter twice.
Bake until springy: Bake 18–20 minutes until golden and the tops spring back when lightly touched; a toothpick should come out with a few moist crumbs.
Cool completely: Rest in the tin for 5 minutes, then transfer to a wire rack to cool fully.
Whip the buttercream: Beat the softened butter until smooth, then add the sifted powdered sugar gradually. Beat in the vanilla, salt, and just enough milk for a smooth, pipeable swirl. Frost the cooled cupcakes.