In a large pot or deep skillet, melt butter over medium heat. Add chopped onion and cook until soft, about 3 minutes.
- Stir in minced garlic and cook for another 30 seconds.
- Add the orzo and stir to coat it in the butter and aromatics.
- Pour in the broth and bring to a gentle boil. Reduce heat and simmer, stirring occasionally, for 6–7 minutes.
- Stir in the broccoli florets and continue cooking for another 4–5 minutes, until the orzo is tender and broccoli is cooked.
- Add the milk or half-and-half and stir until warmed through.
- Reduce heat to low and stir in the cheddar and Parmesan cheeses until melted and creamy.
- Season with salt, pepper, and paprika if using. Add lemon zest for brightness if desired.
- Let sit for a few minutes before serving to thicken slightly.