Preheat your oven to 350°F (175°C). Grease and line the cake pans with parchment paper.
In a large mixing bowl, whisk together the flour, baking powder, and salt. Set aside.
In another bowl, beat the softened butter and granulated sugar together until light and fluffy, about 5 minutes.
Add the eggs one at a time, mixing well after each addition. Stir in the vanilla extract.
Gradually add the dry ingredients to the wet mixture, alternating with the milk. Start and end with the dry mixture, mixing until just combined.
Divide the batter evenly between the prepared cake pans. Smooth the tops with an offset spatula.
Bake for 25 minutes or until a toothpick inserted into the center comes out clean. Allow the cakes to cool in pans for 10 minutes before transferring them to a cooling rack. Cool completely.
For the chocolate ganache, place the chopped chocolate in a heatproof bowl. Heat the cream in a saucepan until it just simmers, then pour it over the chocolate. Let it sit for 5 minutes, then stir until smooth. Let it cool and thicken slightly.
For the buttercream, in a clean mixing bowl, beat the softened butter until creamy. Gradually add the powdered sugar and mix on low speed until combined. Add the vanilla extract and 2 tablespoons of heavy cream. Beat on high until fluffy, adding more cream as needed.
Once the cakes are completely cooled, place one layer on a cake stand. Spread a layer of ganache on top, followed by a layer of buttercream. Place the second cake layer on top and repeat the process with ganache and buttercream.
Frost the top and sides of the cake with the remaining buttercream, smoothing it out for a beautiful finish.
Drizzle any remaining ganache on top for a decorative touch. Allow the cake to set for at least 30 minutes before slicing and serving.