Remove the leaves from the cauliflower, discarding any that are very thick-stemmed or damaged, and reserving any smaller ones. Cut the cauliflower into four to six steaks or wedges through the stem to help keep the florets attached. Cut any florets that fall off into even-sized pieces.
Bring a large pan of salted water to the boil, and cook the cauliflower steaks for 5-6 mins until just tender. Add the reserved leaves and loose florets for the final 2 mins of cooking time. Drain, then leave to steam-dry while you make the cheese sauce.
To make the cheese sauce, melt the butter in the same pan over a medium heat, then sprinkle in the flour. Whisk until you have a thick paste, then gradually add the milk, a splash at a time, whisking until it’s all incorporated. Add the bay leaves and cook for another 5-6 mins until thickened. Stir in the cheddar and mustard powder and season well.
Heat the oven to 200C/180C fan/gas 6. Tip half the sage and all the beans into the sauce. Stir briefly. Fold in the loose cauliflower florets and leaves. Arrange the cauliflower steaks in a baking dish, then pour over the cheese sauce, making sure it coats the steaks well. Scatter with the mozzarella and bake for 20 mins.
Meanwhile, stir the oil, garlic, breadcrumbs, lemon zest and the remaining sage together in a bowl.
Remove the dish from the oven, and scatter over the breadcrumb mixture. Bake for 15 mins more until a cutlery knife goes through the cauliflower steaks easily, and the top is golden and bubbling. Leave to rest for 5 mins before serving.