Preheat the oven to 350°F (175°C). Grease two 8-inch round cake pans and line the bottoms with parchment paper.
In a large mixing bowl, whisk together the all-purpose flour, baking powder, baking soda, and salt.
In a saucepan, combine the water, granulated sugar, unsalted butter, vegetable oil, vanilla extract, and vanilla bean or vanilla bean paste.
Warm over medium heat until the butter melts and the sugar begins to dissolve. Do not boil hard.
Let the warm mixture cool for about 10 minutes.
Whisk the eggs in a small bowl, then slowly whisk them into the warm vanilla mixture.
Pour the wet mixture into the dry ingredients and whisk until smooth.
Divide the batter evenly between the prepared cake pans.
Bake for 25 to 30 minutes, or until a toothpick inserted in the center comes out clean.
Cool the cake layers in the pans for 10 to 15 minutes, then transfer to a wire rack and cool completely.
For the buttercream, beat the room-temperature butter until smooth and creamy.
Add powdered sugar gradually, then mix in vanilla extract and 2 tablespoons cream, half and half, or milk. Add 1 more tablespoon if needed.
Place one cooled cake layer on a serving plate. Spread buttercream over the top.
Add the second cake layer, then frost the top and sides of the cake.
Decorate with rainbow sprinkles, slice, and serve.