Preheat the oven to 350°F (177°C). Grease two 9-inch round cake pans, line the bottoms with parchment, then lightly flour the sides.
Whisk the cake flour, baking powder, and salt together in a medium bowl; set aside.
In a large bowl, beat the butter and granulated sugar on medium-high until pale and fluffy, about 2–3 minutes.
Stream in the oil and beat for 1 minute. Scrape down the bowl as needed.
Add the eggs one at a time, mixing well after each, then beat in the vanilla extract until combined.
On low speed, add the dry ingredients in 3 additions alternating with the buttermilk in 2 additions (begin and end with dry). Mix just until the batter is smooth; do not overmix.
Divide the batter evenly between pans, smooth the tops, and tap each pan lightly on the counter to release air bubbles.
Bake for 23–26 minutes or until the centers spring back and a toothpick comes out with a few moist crumbs. Rotate pans halfway if needed for even baking.
Cool cakes in the pans for 10–15 minutes, then run a knife around the edges and invert onto a wire rack. Peel away parchment and let cool completely.
Make the buttercream: Beat butter until creamy. Gradually add confectioners' sugar, then mix in vanilla, salt, and heavy cream until smooth and fluffy (2–3 minutes). Adjust cream or sugar for spreadable consistency.
Assemble: Level cake layers if needed. Place one layer on a stand, spread frosting on top, add the second layer, and apply a thin crumb coat. Chill 15–20 minutes, then finish with a final coat and decorate as desired.