Blanch the broccoli: Bring a large pot of salted water to a rolling boil. Add the purple sprouting broccoli and cook for exactly 5 minutes until bright green and tender-crisp. Drain immediately, then spread on a baking sheet to cool slightly.
Make the sauce base: Melt butter in a medium saucepan over medium heat. Whisk in flour and cook for 1 minute until bubbly but not browned — this is your roux. Gradually whisk in the warm milk, stirring constantly, until smooth and thickened (about 3 minutes). Remove from heat.
Temper the eggs: Whisk egg yolks in a separate bowl. Slowly pour about ½ cup of the hot cheese sauce into the yolks while whisking vigorously. Pour this mixture back into the saucepan and stir well to prevent curdling.
Finish the sauce: Stir in both cheeses, Dijon mustard, smoked paprika, salt, and pepper until smooth. The sauce should coat a spoon thickly but still be pourable — if too thick, add 2-3 tbsp warm milk. Set aside.
Toast the brioche: Toss brioche cubes with melted butter on a baking sheet. Bake at 400°F for 8-10 minutes until golden and crispy on all sides.
Assemble: Spread blanched broccoli in an even layer in a greased 9x13 baking dish (or two smaller dishes). Pour cheese sauce over the top, making sure every piece is covered. Sprinkle with extra Gruyère and scattered garlic slices.
Bake: At 400°F for 25 minutes until bubbling at the edges and golden on top. Add toasted brioche in the last 3-4 minutes so they stay crunchy.
Rest and serve: Let stand 5 minutes before serving — this helps the sauce set slightly. Garnish with fresh herbs if using. Serve warm.