Start by whisking eggs and sugar on high speed until light and airy, about 5 minutes. Slowly add the oil, orange juice, zest, and vanilla. Finally, fold in the dry ingredients just until combined—overmixing will make the cake dense.
Pour the batter into greased 9-inch pans and bake at 350°F (180°C) for 30-40 minutes. Test with a toothpick; it should come out clean or with a few crumbs. Let the cakes cool for 10-15 minutes in the pan before transferring to a wire rack.
Cook cranberries, sugar, and orange juice over medium heat until they pop, about 5-10 minutes. Mash lightly with a potato masher, simmer 5 minutes more, then stir in butter. Chill for at least an hour to let the filling set.
Beat cream cheese and butter until creamy, then add powdered sugar, vanilla, and a pinch of salt. Beat until fluffy. Keep at room temperature for easy spreading.
Place one cake layer on a board, pipe a ring of frosting to hold the cranberry filling. Spread the cranberry sauce inside the ring, then top with the second cake layer. Frost the entire cake with remaining cream cheese frosting and garnish as desired