Bring a large saucepan of well salted water to a boil over high heat. Cut the heads from the broccoli stalks and cut the heads into small florets. Peel the stalks and thinly slice. Add the broccoli to the boiling water and cook for 2 minutes. Transfer the broccoli to a bowl filled with ice water, then drain well.
In a 10-inch fry pan over medium heat, melt the butter. Add the flour and stir until well incorporated and fragrant, 1 - 2 minutes. Slowly whisk in the milk and bring to a boil. Reduce the heat to low, add the onion and bay leaf and simmer, stirring frequently, until the mixture thickens, about 8 minutes. Remove and discard the bay leaf and add the Gruyere, stirring until the cheese is melted. Season with salt and pepper. Carefully fold in the broccoli and spread in an even layer.
In a small bowl, stir together the panko, parmigiano-reggiano and olive oil, and season with salt and pepper. Sprinkle the panko mixture over the broccoli mixture. Transfer the pan to the oven and bake until the gratin is golden and bubbly, 40 - 45 minutes. Let rest for 15 minutes before serving.