Step 1: Cook the Macaroni: Cook the elbow macaroni according to package directions until al dente. Drain well and set aside.
Step 2: Prepare the Roux: In a large saucepan, melt 4 tablespoons of butter over medium heat. Whisk in the flour until smooth and cook for 1-2 minutes, stirring constantly, to create a roux.
Step 3: Make the Cheese Sauce: Gradually whisk in the milk and heavy cream into the roux, ensuring no lumps form. Bring to a simmer, stirring constantly. Reduce heat and simmer for 5-7 minutes, or until the sauce has thickened slightly.
Step 4: Season the Sauce: Stir in the salt, pepper, nutmeg, and Dijon mustard. Mix well to combine.
Step 5: Melt the Cheeses: Remove the saucepan from the heat and gradually add the cheddar, provolone, and Gruyre cheese (if using), stirring until the cheese is completely melted and the sauce is smooth and creamy.
Step 6: Combine Macaroni and Cheese Sauce: Add the cooked macaroni to the cheese sauce and stir gently to coat evenly.
Step 7: Prepare the Topping: In a small bowl, melt the remaining 2 tablespoons of butter. Add the panko breadcrumbs and toss to coat.
Step 8: Assemble and Bake: Pour the macaroni and cheese into a greased 9x13 inch baking dish. Sprinkle the breadcrumb topping evenly over the top.
Step 9: Bake: Bake in a preheated oven at 375F (190C) for 20-25 minutes, or until the topping is golden brown and the cheese is bubbly.
Step 10: Cool and Serve: Let the mac and cheese cool for a few minutes before serving.
Optional Tips: For a richer flavor, use a combination of sharp and mild cheddar. For a spicier kick, add a pinch of cayenne pepper to the cheese sauce. Top with crumbled bacon for an extra layer of flavor.