French onion soup macaroni cheese

This mouth-watering recipe is ready in just 1 hour and 45 minutes and the ingredients detailed below can serve up to 8 people.
Ingredients
Method
1) Melt the butter over a low heat in a medium saucepan. Add the flour and stir to combine; stir constantly, for about 3 minutes.
2) Increase the heat to medium and whisk in the milk, adding a little at a time, and then cook until thickened, about 4 to 5 minutes.
3) Lower the heat, season with the salt and pepper and add the Gruyere and mozzarella cheeses. Stir until the cheese is melted and the sauce is smooth. Set aside.
French Onion Soup:
1) Heat the butter and olive oil over a medium-high heat in a large saucepan. Add the onions, cover, and cook 10 to 15 minutes, stirring frequently.
2) Remove the cover, add the garlic and honey and continue to cook uncovered, stirring frequently, until the onions are caramelized, about 10 to 15 minutes.
3) Season with salt and a generous amount of pepper. Remove the pan from the heat and add the sherry. Return to the heat and stir to remove the browned bits from the bottom of the pan.
4) Cook to reduce the sherry by half, then add the stock and thyme and cook until almost all the liquid has evaporated. Remove from the heat.
To assemble:
1) Preheat the oven to 180C/Gas 4. For the topping, combine the breadcrumbs and Parmesan cheese in a small bowl and set aside.
2) Grease a 3-quart baking dish or casserole with the butter or spray with nonstick cooking spray. Combine the cooked pasta with the onion soup mixture and bechamel sauce, and stir well to combine.
3) Transfer the pasta to the baking dish and sprinkle with the breadcrumb/Parmesan topping. Bake until the top is golden brown and the cheese is bubbly, about 35 to 40 minutes. Remove from the oven and allow to cool slightly before serving.