Preheat the oven to 350 degrees. Line six 8-inch round cake pans with parchment paper then spray with nonstick cooking spray. Set them aside.
According to package directions, prepare cake batter by adding oil, eggs, and water. Evenly divide the batter into 6 bowls. You can do this by eye or by weighing the batter and dividing it by 6.
Color each bowl of batter a different color of the rainbow (red, orange, yellow, green, blue, and purple) with the matching gel food coloring.
Pour each bowl of batter into one of the prepared pans until each pan is filled with one color. Bake for 13-17 minutes then cool completely before frosting.
For the Frosting
Measure out the butter, powdered sugar, and vanilla into a large bowl or the bowl of a stand mixer. Using a hand or stand mixer, start to combine the butter into the powdered sugar.
With the mixer on, slowly stream in your milk tablespoon by tablespoon until it starts to come together and look creamy. If it hasn’t come together, add another tablespoon, mix and wait it out.
After about 2 or 3 tablespoons, your frosting should be thick enough to hold its shape, but light enough to have a butter knife or rubber scraper run through it with ease.
To Assemble
Starting with the red cake layer, stack each cake layer in rainbow order making sure to spread frosting in between each layer.
With the remaining frosting, frost the sides and top of the cake. If you want to do a crumb coat, refrigerate then do a final coat of frosting, feel free to do that!