Place your broccoli, onion, garlic, a good drizzle of olive oil and salt & pepper in a suitably sized baking dish and roast for 15-20mins at 200C/392F or until fork tender and lightly charred. Timings will differ depending on the size of broccoli, just keep an eye on it as broccoli can burn quickly.
Meanwhile, place your pasta in salted boiling water and cook until a dente. Pasta should be a touch hard still, if it's fully cooked it'll come out sloppy when baked.
At the same time, melt your butter in a suitably sized pan. Add flour, then stir into a paste. Gradually add your milk, stirring throughout, then gradually and your vegetable stock. Make sure it's gradual and you keep stirring or lumps will form. Leave to simmer until thickened.
Once thickened, add gruyere, mustard, nutmeg and seasoning, then add in the broccoli, onions and garlic. Drain pasta and combine.
Pour back into your baking dish, top with breadcrumbs, olive oil spray, seasoning and bake for 20mins at 200C/392F or until golden brown.