Start by setting your oven to 180°C (350°F) so it can preheat while you prepare everything else. Line a 12-cup muffin pan with paper cases and put it aside.
In a medium-sized bowl, sift together the flour, baking powder, and salt. Give it a quick stir so everything is evenly mixed, then set it aside for later.
In a larger mixing bowl, beat the butter and caster sugar together using an electric mixer. Keep mixing until the mixture becomes pale, light, and fluffy. Add the eggs one at a time, making sure each one is fully mixed in before adding the next. Stir in the vanilla extract.
Now, combine the two mixtures. Add about half of the dry ingredients into the butter mixture and mix gently. Pour in the milk and vegetable oil, and then add the rest of the dry ingredients. Stir everything together just until its blended be careful not to over mix.
Spoon the batter into the prepared cupcake liners, filling each about two-thirds full. Bake them in the preheated oven for 18 to 20 minutes, or until a toothpick inserted in the center comes out clean. Let the cupcakes cool in the pan for about 5 minutes before moving them to a wire rack to cool completely.
To make the frosting, beat the butter in a large bowl until smooth and creamy. Gradually add the powdered sugar, one cup at a time, mixing well after each addition.
Add the vanilla extract and a pinch of salt, and then pour in milk or cream a little at a time until the frosting becomes soft, smooth, and fluffy. Once the cupcakes are completely cool, spread or pipe the frosting on top.