Heat olive oil and butter together in a large skillet or Dutch oven over medium heat until the butter is foaming. Add the diced onion and cook for 3-4 minutes, stirring occasionally, until softened and translucent. This creates a sweet, mild foundation for the dish. Add the minced garlic and Italian seasoning, stirring constantly for about 30 seconds until fragrant—be careful not to let the garlic brown, as it will turn bitter.
Add the sun-dried tomatoes, lemon juice, Dijon mustard, and orzo to the pan, stirring constantly for 2-3 minutes. This brief toasting step helps the orzo absorb flavors better and gives it a slightly nutty taste. I find that toasting the pasta this way makes a noticeable difference in the final texture—it prevents the pasta from becoming mushy later.
Pour in the broth and cream, stirring to combine everything evenly. Bring the mixture to a gentle boil over medium-high heat, then reduce to medium and simmer for approximately 10 minutes, stirring frequently. The pasta will absorb the liquid gradually and become creamy. Stir often to prevent sticking and ensure even cooking—the orzo should be tender but not falling apart when finished.
Remove the pan from heat and immediately stir in the freshly grated Parmesan, spinach, and basil. The residual heat will wilt the spinach and help the cheese melt smoothly into a silky sauce. I prefer freshly grated Parmesan because it melts more evenly than pre-shredded varieties, which contain anti-caking agents. Cover the pan for 2-3 minutes to allow the spinach to fully wilt and the flavors to meld together.
Uncover the pan and taste the dish. Add salt, pepper, and red pepper flakes to your preference—start with 1/4 tsp red pepper flakes and adjust for your desired heat level. Stir gently to incorporate the seasonings and distribute them evenly throughout. Serve immediately while the dish is creamy and warm.