Preheat the oven to 350 F. Grease 3 8-inch round cake pans, and set aside.
Use a hand mixer or a stand mixer to cream together 1 cup butter, the vegetable oil, and granulated sugar until fluffy.
Add in the eggs, 2 teaspoons vanilla extract, and sour cream, mixing until well-incorporated.
In a separate bowl, whisk together the flour, baking powder, and ½ teaspoon salt. Slowly add the dry ingredients into the bowl with the wet ingredients, beating as you go, until everything is well-combined.
Pour the batter evenly into the prepared cake pans. Bake in the preheated oven for 25 to 30 minutes, until a toothpick inserted into the center of the cakes comes out clean. Allow the cakes to cool completely for a couple hours.
While the cakes cool, add the brown sugar, remaining 1 cup butter, buttermilk, heavy cream and ¼ teaspoon salt to a large saucepan. Heat on medium heat until it begins to boil, then lower the heat to a simmer, and continue to cook for 3 minutes, stirring regularly.
Remove the pan from the heat, and pour the caramel into a separate bowl to let it cool until it's lukewarm, about 10 minutes.
Use a stand mixer or a hand mixer to beat the cooled caramel, remaining 2 teaspoons vanilla extract, and powdered sugar until the frosting is smooth and fluffy.
Frost the cake immediately, decorate as desired, and then serve.