Preheat your oven to 375°F (190°C). Grease a 9x13-inch baking dish and set it aside.
Season and sear the chicken. Pat the chicken dry and season with salt, pepper, and paprika.
Heat 1 tablespoon olive oil in a large skillet over medium-high heat. Sear the chicken in two batches until just cooked through, about 4–5 minutes total per batch. Transfer to a bowl.
Sauté the aromatics. In the same skillet, add the remaining olive oil and the butter.
When the butter melts, add the onion and cook until soft, 3–4 minutes. Stir in the garlic and cook for 30 seconds until fragrant.
Make the sauce. Sprinkle in the flour and cook, stirring, for 1 minute. Slowly whisk in the chicken broth, then the milk or half-and-half.
Add Dijon (if using) and thyme. Simmer for 2–3 minutes until slightly thickened. Season with salt and pepper to taste.
Add the cheeses. Remove from heat.
Stir in the cheddar and half of the Parmesan until melted and smooth. This should be a pourable, creamy sauce.
Prepare the broccoli. If using fresh broccoli, blanch in boiling salted water for 2 minutes, then drain well. If using frozen, make sure it’s thawed and patted dry to avoid watering down the sauce.
Assemble the casserole. In the prepared dish, combine the chicken, broccoli, and cooked rice or pasta (if using).
Pour the garlic butter cheese sauce over everything and gently toss to coat evenly.
Top and bake. Mix the panko with the remaining Parmesan and a pinch of salt. Sprinkle over the top for crunch (optional). Bake uncovered for 18–22 minutes, until bubbling and lightly golden.
Rest and serve. Let the casserole rest for 5 minutes.
Garnish with chopped parsley. Taste and adjust salt and pepper if needed, then serve warm.