Preheat oven to 350 F. Butter and flour a large bundt pan.
Begin by sifting together the all-purpose flour and cake flour into a bowl. Set aside.
Cream butter, coconut oil, sugar, salt, vanillas and baking powder for a full 5 minutes until very light and fluffy.
With the mixer on, add egg whites, one at a time allowing each to be fully incorporated before adding another.
Add the sifted flour mixture then turn the mixer on low and slowly drizzle in the buttermilk.
In 5 separate bowls, add 1/3 cup of batter. Using gel food coloring add red, yellow, green, blue and purple to each bowl and stir to combine the colors. Use most of the remaining batter (more than 2/3 of it) to fill your bundt pan. Leave the last bit for the top, to cover the rainbow.
Place each of the colored batters in a piping bag (you'll have five) and snip of the top. Use the back of a teaspoon to create space for the rainbow as shown in the photos above.
Pipe a red circle into the moat then use the back of a spoon to smooth it out so that it's as wide as possible while still leaving a white border on the inner and outer rim.
Now add the yellow, leaving a red border on either side. Each following color will decrease in width - see photos below. Spoon the rest of the white batter on top with an offset spatula, careful not to smoosh the rainbow.
Bake for 45 minutes, checking for doneness at 40. The bundt is done when you can touch it and it springs back.
Allow cake to cool in pan for about 15 minutes, then invert onto a cooling rack.