Set your oven to 350°F (175°C). Grease and flour two 9-inch round pans, and line the bottoms with parchment paper to help the cakes come out easily.
In a medium bowl, whisk together the flour, baking powder, baking soda, and salt. Set it aside for now.
In a large mixing bowl, beat the butter, oil, and sugar together for 3–4 minutes until the mix is light, fluffy, and pale in color.
Add the eggs one at a time, mixing well after each. Stir in the orange zest, fresh orange juice, and vanilla. If you want a brighter orange color, add a few drops of food coloring here.
Add the dry mix in three parts, alternating with the buttermilk. Start and end with the dry mix. Mix gently—just until it’s combined. Don’t overmix or the cake might turn out dense.
Pour the batter evenly into the pans. Smooth the tops and bake for 25–30 minutes, or until a toothpick in the center comes out clean. Let them cool in the pans for 10 minutes, then move them to wire racks.
Beat the cream cheese and butter together until smooth. Add the powdered sugar slowly, then mix in the orange juice, zest, and vanilla. Keep beating until the frosting is light and fluffy.
Place one cake layer on a serving plate. Spread a thick layer of frosting on top. Add the second layer and cover the whole cake with frosting.
Sprinkle more orange zest on top or add orange slices for decoration. Chill the cake for 15–20 minutes before cutting—it helps keep the slices clean and neat.