Melt butter in a large pot or Dutch oven over medium heat. Add diced onion and cook for 4-5 minutes until softened and translucent.
Add minced garlic and stir for 30 seconds until fragrant. Add dry orzo pasta and stir for 1 minute to lightly toast.
Pour in broth and milk, stirring to scrape up any bits from the bottom. Bring to a gentle simmer.
Reduce heat to medium-low and cook uncovered for 8-10 minutes, stirring every 2 minutes to prevent sticking. Orzo should be about 3/4 cooked with most liquid absorbed.
Arrange broccoli florets on top of the orzo. Cover the pot and steam for 3-4 minutes until broccoli is bright green and tender-crisp.
Remove from heat. Immediately stir in cheddar cheese, Parmesan cheese, smoked paprika, and nutmeg until cheese is melted and sauce is smooth.
Season with salt and pepper to taste. Let rest for 5 minutes before serving. Garnish with fresh parsley if desired.