Preheat the oven to 350°F (176°C) and line a cupcake pan with liners.
Cream butter and sugar in a large mixing bowl for 3-4 minutes until light and fluffy.
Mix in sour cream and vanilla extract.
Add egg whites in two batches, ensuring thorough mixing each time. Scrape the bowl as needed.
In a separate bowl, combine dry ingredients; in a measuring cup, combine milk and water.
Add half of the dry ingredients, followed by the milk mixture, and the remaining dry ingredients. Ensure thorough mixing, scraping the bowl as necessary.
Fill cupcake liners halfway and bake for 15-17 minutes until a toothpick comes out with a few crumbs.
Allow cupcakes to cool for 2-3 minutes, then transfer to a cooling rack to finish cooling.
While cupcakes cool, make pastry cream. Beat egg yolks in a medium-sized bowl.
Mix sugar, cornstarch, and milk in a saucepan until smooth.
Cook over medium-high heat, stirring continuously until it thickens and bubbles.
Reduce heat to medium and simmer for 2 minutes. Remove from heat.
Combine a bit of the milk mixture with the egg yolks, then add the egg mixture to the milk mixture.
Return the pan to heat, bring to a light boil, and stir for 2 minutes.
Remove from heat, stir in butter and vanilla, and set aside to cool to room temperature.
While the cupcakes and cream cool, make the chocolate ganache. Combine chocolate chips and corn syrup in a large bowl.
Bring heavy cream to a boil, pour it over the chocolate chips, let sit for 3-5 minutes, then whisk until smooth.
Refrigerate the ganache until firm, about 1-2 hours.
Once everything is cool, remove centers of cupcakes using a cupcake corer or knife.
Fill the cupcakes with pastry cream.
Top with chocolate ganache and decorate with piped roses using an Ateco tip 844 (or Wilton 2D or 1M).
Refrigerate until ready to serve, and serve closer to room temperature. Consume within 3-4 days for the best taste.