Heat the olive oil and butter in a large pot or saucepan over medium-high heat until the butter melts.
Add the chopped onion and sauté for 3–4 minutes until soft and translucent.
Stir in the minced garlic and Italian seasoning, then add the orzo and cook 2–3 minutes, stirring often, to lightly toast the pasta.
Pour in the broth and heavy cream and bring to a gentle simmer. Reduce heat if needed so it bubbles gently rather than boiling vigorously.
Cook uncovered for about 10 minutes, stirring fairly often, until the orzo is tender and most of the liquid is absorbed; adjust heat to maintain a gentle simmer.
Remove the pot from the heat, stir in the grated Parmesan and packed baby spinach until the spinach wilts and the cheese melts, then cover and let sit 3–5 minutes to thicken.
Uncover, taste, and season with salt and pepper as needed; serve warm.