Heat olive oil and butter in a large skillet over medium heat.
Add chopped onion and sauté until softened, about 3 minutes.
Stir in garlic and cook for 1 minute until fragrant.
Add sliced mushrooms, season with salt and pepper, and cook until golden and tender.
Pour in the orzo and toast lightly for 1–2 minutes.
Add broth and milk, bring to a simmer, then reduce heat to low. Cook until orzo is tender, about 10 minutes, stirring often.
Fold in spinach until wilted.
Remove from heat, stir in Parmesan cheese, and adjust seasoning.
Sprinkle with red pepper flakes if you like a little kick. Serve warm.