Preheat oven to 350°F (175°C). Grease two 9-inch round cake pans and line with parchment paper.
Whisk the flour, baking powder, baking soda, and salt together. Set aside.
Beat the softened butter, oil, and sugar together for about 3 minutes, until pale and fluffy.
Beat in the eggs one at a time, then beat in the vanilla extract.
With the mixer on low, alternate adding the dry ingredients and buttermilk, starting and ending with the dry ingredients. Mix just until combined.
Divide the batter evenly between the pans. Bake for 26 to 30 minutes, until a toothpick comes out with a few moist crumbs.
Cool in the pans for 15 minutes, then invert onto a wire rack to cool completely
Beat the butter for the buttercream until creamy. Add the powdered sugar, cream, vanilla, and salt; beat on low, then high, until light and fluffy.
Level, stack, and frost the cooled cake layers with the buttercream.