Preheat your oven to 350 degrees F.
Bring a large pot of water to a boil with lots of salt. Cook the pasta for 2 minutes less than what's on the package instructions and strain out the excess water. Set aside for later.
Shred whatever cheese you are using if it is not already shredded for you. Set aside for later.
In a non-stick or cast iron skillet, melt the butter and whisk in the flour. ***This is called making a roux and it's REALLY important to incorporate the flour well and allow it to cook for a minute or two here or else you could end up with a lumpy cheese sauce that has a floury aftertaste and no one wants that!!!
Once the roux looks smooth and homogeneous, whisk in the milk.
Once combined, add in the seasonings and continue whisking.
Sprinkle in 3 cups of the shredded cheese (leave 1 cup for sprinkling on top)
Reduce the stove to medium-low heat. The cheese will immediately start to melt and the mixture will thicken. Once the sauce is smooth and thickened, add in the cooked pasta and stir to combine.
Top with the cheese you reserved from earlier (if you want crispy edges, make sure to get some of that cheese on the all the sides of the pan).
Cover with aluminum foil and bake for 20 minutes. Then uncover and broil the top for a few minutes until it's nice and bubbly (be sure to watch closely so it doesn't burn)!
