Cook the macaroni noodles until al dente, about 10-15 minutes; drain and set aside.
In a medium saucepan, melt butter over medium heat. Add the flour and stir the mixture, cooking for 1-2 minutes to create a roux.
Slowly pour in the milk, whisking constantly to prevent lumps. Add the heavy cream if desired. Cook and stir constantly until the sauce begins to thicken.
Add 2 ½ cups of the grated cheese to the sauce, stirring until the cheese is melted and the sauce reaches your desired consistency.
In a cast-iron skillet or a baking dish, combine the cooked macaroni with the creamy cheese sauce, stirring to ensure even coverage.
If you plan on baking, preheat your oven to 350°F (175°C), sprinkle the remaining ½ cup of cheese over the top, and bake uncovered for 20-25 minutes until the top is golden brown.
Serve hot, sprinkle with chopped parsley for garnish if desired.