Preheat oven to 350F (175C) and prepare a 12 count muffin tin* (see recipe note) with paper liners. Set aside.
Place butter in the bowl of a stand mixer (or you may use a large bowl and an electric hand mixer) and beat until smooth and creamy.
Add sugar and oil and beat again until ingredients are very well-combined, smooth, and creamy.
Scrape down the sides and bottom of the bowl and then stir in your vanilla extract.
In a separate bowl, whisk together your flour, baking powder, and salt.
With mixer on low speed, gradually alternate between adding the flour mixture and your buttermilk to the butter mixture, starting and ending with the flour mixture. Stir until each one is almost completely combined before adding the next. Be sure to scrape the sides and bottom of the bowl so that all ingredients are combined.
In separate, completely clean and grease-free bowl, combine your egg whites and, with a hand-mixer on high-speed, beat until stiff peaks form.
Using a spatula, gently fold your egg whites and sprinkles into your batter. Take care to scrape the sides and bottom of the bowl so that ingredients are well-combined, and take care not to over-mix.
Divide batter into prepared cupcake tin, filling each liner ¾ of the way full.
Bake on 350F (175C) for 18 minutes, or until a toothpick inserted in the center comes out mostly clean with moist crumbs (not wet batter). For mini cupcakes, bake 14-15 minutes.
Allow cupcakes to cool completely before frosting.
Beat butter with an electric mixer until creamy. Sprinkle salt over butter and stir again to combine.
Gradually, about ½ cup at a time, add powdered sugar, waiting until each cup is completely mixed before adding more.
With mixer on medium-low speed, add the heavy cream one Tablespoon at a time. Once ingredients are well incorporated, gradually increase speed to high and beat for about 30 seconds.
Add vanilla extract and stir well.
Pipe or spread frosting over cooled cupcakes (I used a Wilton 2D tip for the rosette decorations). Top with sprinkles, if desired. Cupcakes keep well in an airtight container at room temperature for several days, or refrigerated in an airtight container for a week.
*Since this recipe makes 15 cupcakes and most cupcake pans only have room for 12 cupcakes, sometimes I use the leftover batter to make mini cupcakes instead. The leftover batter (after measuring out 12 cupcakes) will yield about 8-10 mini cupcakes, which should be baked for about 14-15 minutes.