Cook the pasta: Bring a large pot of salted water to a rolling boil. Add the macaroni and cook just until al dente — firm to the bite but not hard — about 1 minute less than package instructions. The pasta will continue to cook in the oven, so slightly undercooking prevents it from becoming mushy. Drain and set aside.
Prepare the roux: In a large saucepan over medium heat, melt the butter until it begins to foam. Whisk in the flour gradually to create a smooth paste, stirring continuously for 1–2 minutes. This step removes the raw flour taste and forms the base of the creamy cheese sauce.
Add the liquids and seasonings: Slowly pour in the milk while whisking to prevent lumps, followed by the heavy cream. Continue stirring until the mixture thickens slightly and coats the back of a spoon, about 4–5 minutes. Stir in the ground mustard, cayenne pepper (if using), black pepper, and paprika. The mustard enhances the depth of the cheese flavor, while the spices add gentle warmth and color.
Incorporate the cheeses: Lower the heat and gradually add four of the cheeses — mozzarella, cheddar, Monterey Jack, and provolone — reserving some for topping. Stir until completely melted and smooth. Add salt to taste, keeping in mind that some cheeses are naturally salty.