Preheat your oven to 350°F (175°C). Grease and flour the two 9-inch round cake pans.
In a large mixing bowl, sift together the flour, sugar, cocoa powder, baking powder, baking soda, and salt.
In another bowl, combine the vegetable oil, buttermilk, eggs, vanilla extract, and purple food coloring. Mix well.
Gradually add the wet ingredients to the dry ingredients. Use an electric mixer or whisk to mix until well combined and smooth.
Divide the batter evenly between the prepared cake pans.
Bake in the preheated oven for 25-30 minutes, or until a toothpick inserted into the center comes out clean.
Once baked, remove the cakes from the oven and allow them to cool in the pans for about 10 minutes. Then, transfer them to a cooling rack to cool completely.
While the cakes are cooling, prepare the cream cheese frosting. In a mixing bowl, beat the softened butter and cream cheese together until smooth and creamy.
Gradually add the powdered sugar, mixing until fully incorporated. Add the vanilla extract and mix again. If the frosting is too thick, add heavy cream, one tablespoon at a time, until the desired consistency is reached.
Once the cakes are completely cooled, place one layer on a serving plate. Spread a layer of cream cheese frosting on top. Place the second layer on top and frost the top and sides of the cake.
Optionally, decorate with sprinkles, edible flowers, or additional frosting designs.