Heat the oven to 350°F. Butter a 9x13 inch baking dish.
Steam the broccoli 3 to 4 minutes until bright green and crisp tender then drain well. If using frozen broccoli pat very dry so the sauce does not thin out.
Melt butter in a large skillet over medium heat 1 minute until foamy. Add onion and cook 3 to 4 minutes until translucent with sweet aroma and no browning to keep the sauce pale.
Sprinkle in flour and whisk 1 minute until the roux looks glossy and smells nutty.
Slowly whisk in warm milk and stock. Add salt, pepper, garlic powder and paprika. Simmer 3 to 4 minutes stirring until the sauce coats the spoon and a finger swipe holds a clean line on the back of the spoon.
Off heat whisk in 1 1/2 cups cheddar until melted then fold in yogurt for tang. If it looks too thick splash in stock to reach a pourable but thick consistency.
In a large bowl combine rice, broccoli and sauce. The mixture should feel creamy and scoopable not soupy. If rice is clumping break it up with a fork before mixing.
Spread in the dish. Top with remaining 1/2 cup cheddar. Toss panko with olive oil and scatter on top for crunch if using.
Bake 25 to 30 minutes until bubbling at the edges and the top is golden with tiny browned cheese spots. Rest 10 minutes so slices hold together and the steam settles for cleaner scoops.