1 lb macaroni pasta
5 Tablespoons (70 g) unsalted butter
1/3 cup (40 grams) all-purpose flour
3 cups (681 ml) whole milk
2 teaspoons dijon mustard
1 and 1/4 teaspoons salt
1 teaspoon granulated sugar
1/2 teaspoon onion powder
1/2 teaspoon black pepper
1/2 teaspoon cayenne pepper
1/4 teaspoon garlic powder
1/2 cup (113 ml) heavy cream
8 ounces (226 g) extra sharp cheddar grated
6 ounces (170 g) Gruyere cheese grated
4 ounces (113 g) Fontina cheese grated
4 ounces (113 g) full-fat cream cheese room temperature, cut into 1/2-inch cubes
freshly cracked black pepper for serving, optional
Bring a large pot of water to a boil over high heat. Add a dash of salt and the macaroni and cook for 7 minutes. Drain and set aside.
In the meantime, in a large saucepan, melt the butter over medium-heat. Sprinkle in the flour, and whisking constantly, and cook for 1 minute. Slowly pour in the milk, whisking constantly as you add.
Cook over medium-high heat, whisking almost constantly, until the mixture bubbles up and thickens, about 5 minutes. Whisk in the dijon, salt, sugar, onion powder, black pepper, cayenne pepper, and garlic powder.
Reduce the heat to low and slowly whisk in the heavy cream. Then stir in all of the cheeses. Fold in the pasta and mix well. Cook for 1 to 2 minutes if it looks like it needs to thicken up. Then remove from heat and serve warm, with black pepper, if desired