Prep oven & pans — Preheat oven to 350°F (175°C). Grease two 9-inch round cake pans, line bottoms with parchment paper, then grease the parchment.
Mix dry ingredients — Whisk together flour, sugar, baking powder, and salt in a large bowl. Set aside.
Cream butter — Beat softened butter on medium-high for 2 minutes until pale and fluffy.
Add eggs & vanilla — Add eggs one at a time, beating well after each. Mix in vanilla extract and vegetable oil.
Combine wet & dry — With mixer on low, add dry ingredients in three additions, alternating with milk and sour cream (start and end with dry). Mix just until combined.
Bake — Divide batter evenly between pans. Bake 28–32 minutes or until a toothpick inserted in the center comes out clean.
Cool completely — Cool in pans 10 minutes, then turn out onto a wire rack. Cool fully before frosting (at least 1 hour).
Make buttercream — Beat butter on medium-high for 3 minutes. Add powdered sugar one cup at a time on low. Add heavy cream, vanilla, and salt. Beat on high 2 minutes until fluffy.
Assemble & frost — Spread frosting on top of first layer. Place second layer on top. Apply a thin crumb coat all over, refrigerate 15 minutes, then apply final frosting layer.