Preheat your oven to 350°F (175°C). Grease and flour two 9-inch round cake pans.
In a large mixing bowl, whisk together the flour, sugar, baking soda, baking powder, and salt until well combined.
In another bowl, mix the vegetable oil, buttermilk, eggs, cocoa powder, vanilla extract, purple food coloring, and vinegar until smooth.
Gradually add the wet ingredients to the dry ingredients, mixing until just combined. Do not overmix.
Divide the batter evenly between the prepared cake pans. Bake for 25-30 minutes, or until a toothpick inserted in the center comes out clean.
Allow the cakes to cool in the pans for 10 minutes, then transfer them to a wire rack to cool completely.
While the cakes are cooling, prepare the frosting. In a large bowl, beat the softened butter until creamy.
Gradually add the powdered sugar, mixing on low speed until combined.
Add the vanilla extract and 2 tablespoons of heavy cream. Beat on high speed for 2-3 minutes until fluffy. If the frosting is too thick, add more heavy cream, one tablespoon at a time, until desired consistency is reached.
Once the cakes are completely cool, place one layer on a serving plate. Spread a generous amount of frosting on top, then place the second layer on top and frost the top and sides of the cake.
Serve immediately or refrigerate for up to 3 days.