Begin by bringing a large pot of salted water to a rolling boil. Once boiling, add the elbow macaroni, and cook it according to the package instructions until it reaches al dente. Drain the macaroni in a colander and set it aside for later.
In the same pot where you cooked the macaroni, melt the unsalted butter over medium heat. Once the butter has completely melted, whisk in the all-purpose flour. Stir the mixture constantly for about 2 minutes until it turns a light golden brown.
Gradually and slowly pour in the whole milk while whisking vigorously to prevent any lumps from forming. Add the Dijon mustard, garlic powder, onion powder, paprika, salt, and black pepper, stirring well to combine. Continue to cook this mixture for 5-7 minutes over medium heat, stirring frequently until it thickens slightly and becomes creamy.
Lower the heat to a gentle simmer. Begin adding the shredded white cheddar cheese and grated Parmesan cheese to the mixture, stirring continuously until both cheeses are fully melted and the sauce is smooth and velvety.
Carefully add the drained macaroni to the rich cheese sauce, stirring gently until the pasta is thoroughly coated with the cheese.
If you prefer a baked, crunchy topping, preheat your oven to 350°F (175°C). Transfer the creamy mac and cheese into a lightly greased baking dish. If using, sprinkle panko breadcrumbs evenly over the top. Bake in the preheated oven for 15-20 minutes, or until the top is golden brown and bubbly.
Once baked, remove the dish from the oven and allow it to cool for a few minutes. For an elegant touch, garnish with freshly chopped parsley before serving.
Notes
For a baked version, add panko breadcrumbs on top before baking.