Preheat the Oven: Preheat your oven to 350°F (175°C) and grease six 9-inch round cake pans (or work in batches if you have fewer pans).
Mix Dry Ingredients: In a medium bowl, whisk together the flour, baking powder, and salt.
Cream Butter and Sugar: In a large bowl, cream the butter and sugar together until light and fluffy, about 4-5 minutes. Add the eggs one at a time, mixing well after each addition. Stir in the vanilla extract.
Alternate Dry and Wet Ingredients: Add the flour mixture to the butter mixture in three parts, alternating with the milk, beginning and ending with the flour. Mix until just combined.
Divide the Batter: Divide the batter evenly into six bowls. Add a different food coloring to each bowl and stir until the color is fully mixed in.
Bake the Cakes: Pour each colored batter into the prepared pans. Bake for 15-20 minutes, or until a toothpick inserted into the center of each cake comes out clean. Let the cakes cool in the pans for 10 minutes, then turn them out onto wire racks to cool completely.
Prepare the Frosting: In a large bowl, beat the butter until creamy. Gradually add the powdered sugar, heavy cream, vanilla extract, and salt, beating until smooth and fluffy.
Assemble the Cake: Place the purple layer on a serving plate and spread a layer of frosting on top. Repeat with the blue, green, yellow, orange, and red layers. Frost the top and sides of the cake with the remaining frosting.
Chill and Serve: Chill the cake in the refrigerator for 30 minutes before serving to set the frosting. Slice and enjoy!