Prepare the pans. Heat the oven to 350°F. Grease two 8-inch round cake pans and line the bottoms with parchment paper.
Mix the dry ingredients. In a large bowl, whisk together the flour, baking powder, salt, sugar, and poppy seeds. Add the orange zest and whisk again to distribute it evenly.
Mix the wet ingredients. In a separate bowl, whisk together the orange juice, oil, eggs, vanilla, Greek yogurt, and milk until smooth.
Make the batter. Pour the wet ingredients into the dry ingredients and mix just until smooth. Do not overmix.
Bake. Divide the batter evenly between the prepared pans. Bake for 28-35 minutes, or until a toothpick inserted into the center comes out clean.
Cool. Let the cakes cool in the pans for 10 minutes, then turn them out onto cooling racks and cool completely before frosting.
Make the frosting. Beat the butter until smooth and creamy. Add the cream cheese and beat until fully blended and fluffy. Gradually mix in the powdered sugar, then beat in the orange juice a little at a time until the frosting is light and spreadable.
Level and torte the cake. Once the cake layers are completely cool, use a long serrated knife to trim off any domed tops. Slice each layer horizontally in half to make four thin layers, if desired.
Fill the layers. Place three cake layers on a cooling rack and spread an even layer of frosting on top of each. Place one frosted layer on a cake stand or plate, then stack the other two frosted layers on top, keeping them level. Add the final unfrosted layer.
Crumb coat. Spread a thin layer of frosting over the top and sides of the cake to trap loose crumbs. Refrigerate for 20-30 minutes, until the crumb coat is firm to the touch.
Finish and decorate. Spread the remaining frosting over the chilled cake, covering the top and sides. Decorate with orange zest, piped frosting, or twisted orange slices if desired.