Preheat oven to 170°Celsius. Prepare cupcake liners.
Beat butter and sugar until light and fluffy, for approximately 2 minutes. Scrape the sides of the bowl constantly.
Add the eggs, one at a time, beating well after each addition.
Sift in the flour, baking powder and salt into the creamed mixture in 3 batches, alternating each batch with milk. Start and end with the flour. Mix until the flour is well incorporated.
Finally, fold in the vanilla extract.
Pour batter into prepared cupcake liners (see Note 1) and bake for 20 minutes, until the cupcakes are well risen and have turned golden brown.
Remove the cupcakes from the oven and let them cool in the tin for 5 minutes before removing them onto a wire rack to cool further (see Note 2).
To make the frosting, beat butter and powdered sugar until fluffy.
Add vanilla extract and continue beating until the buttercream is all light and fluffy. Add milk or heavy cream if it appears too stiff. Start with small quantities of liquid to avoid the buttercream from becoming runny.
Fill the buttercream into a piping bag fitted with a large star tip and pipe a large swirl on top of each cupcake. Decorate with sprinkles and add a small fondant flower on the side.