01 - Preheat oven to 350°F. Grease a 9 x 13-inch baking dish.
02 - Bring a large pot of salted water to a boil. Cook macaroni until just al dente, about 1 to 2 minutes less than package instructions. Drain and set aside.
03 - In a large saucepan over medium heat, melt 4 tablespoons butter. Whisk in all-purpose flour and cook, stirring constantly, for 1 to 2 minutes until lightly golden.
04 - Gradually whisk in whole milk and heavy cream. Continue cooking and whisking until thickened and bubbling, about 5 to 7 minutes. Remove from heat.
05 - Stir in cheddar, Gruyère, Dijon mustard, garlic powder, onion powder, salt, and black pepper until cheese is fully melted and sauce is smooth.
06 - Add cooked macaroni to the cheese sauce. Stir to coat evenly, then transfer mixture into the prepared baking dish.
07 - In a bowl, mix breadcrumbs, melted butter, grated Parmesan, and paprika if using. Sprinkle evenly over the macaroni.
08 - Bake for 25 to 30 minutes, until topping is golden brown and sauce is bubbling.
09 - Allow to cool for 5 to 10 minutes before serving.