1. Fill your kettle and boil it, then fill a large pan with the hot water. Top up with extra water, if needed. Add a large pinch of salt, pop on a lid and set the pan on a high heat to come back to the boil.
2. While the water boils, pull the leaves off the cauliflower. Chop the cauliflower and stalk into bite-sized pieces. Give the spinach a good wash under cold water, then slice off the dry ends. Roughly chop the spinach.
3. The water in the pan should be boiling. Add the penne, then turn the heat down a little simmer for 5 mins. Add the cauliflower and cook for another 5-6 mins till the pasta and cauliflower are both tender but still have a little bite. Drain and set aside.
4. While the pasta cooks, put a medium pan on a medium heat and add the butter. Swirl it round the pan to melt it, then add 2 tbsp flour. Cook and stir with a wooden spoon for 2 mins, then add around 100ml of the milk. Cook and stir to combine the milk, flour and butter. Repeat, steadily adding splashes of milk and stirring to combine.
5. Once all the milk is added, drop in the bay leaf. Turn the heat up a little, bring to the boil, then turn the heat back down and simmer for 6-8 mins, stirring occasionally, till the sauce has thickened a little (your spoon should leave faint trails in the sauce when you stir).
6. While the sauce simmers, coarsely grate the cheddar. Preheat your grill to high.
7. Fish the bay leaf out of the sauce. Stir in most of the cheddar (keep a few pinches back for topping) and add 1 tbsp Worcester sauce and ½ tbsp Dijon mustard. Add the spinach and stir for 2-3 mins to wilt it. Taste the sauce and add a pinch of salt or pepper, or a little more mustard if you think it needs it.
8. Tip the pasta and cauliflower into a heatproof dish. Pour over the cheese sauce and top with the remaining cheddar. Slide under the grill and cook for 6-8 mins till golden and bubbling. Let the gratin cool in the dish for 1-2 mins, then serve in a couple of warm bowls.