Cook the pasta to al dente according to package directions.
1 lb. dry elbow macaroni
While the pasta is cooking, fry the bacon in a large cast-iron (or other oven-safe) skillet until crispy.
10 slices bacon
Remove the bacon and place it on a plate lined with paper towels to drain. Wipe out the pan.
Preheat oven to 375°F.
Melt 5 tbsp of butter in the now-clean skillet. Add in the onion and a sprinkle of salt and sauté for a couple of minutes until softened. Then, add in the garlic.
8 tbsp unsalted butter, ¼ cup minced onion, 2 cloves garlic
Stir in the flour until the mixture becomes pasty.
¼ cup all-purpose flour
Gradually pour in the milk while whisking the mixture over low-medium heat. Continue whisking until the mixture has thickened.
3¼ cups whole milk
Whisk in the sour cream.
½ cup sour cream
Take the skillet off the heat. Then, add in 3 cups of cheddar cheese and stir until completely melted and incorporated.
4-5 cups freshly shredded sharp cheddar cheese
Add the pasta to the skillet and stir to coat.
Crumble the bacon and stir half of the crumbles into the macaroni.
In a small saucepan or skillet, melt the remaining 3 tbsp of butter over medium heat.
Add in the panko breadcrumbs and garlic salt, and stir until toasted and golden brown.
1 cup panko breadcrumbs, ½ tsp garlic salt
Top the the macaroni with the remaining bacon and cheese, and the toasted breadcrumbs.
Bake for 15 minutes until the mixture is bubbly and crispy on the edges. Broil for a few minutes for an extra crispy crust. Let the casserole rest for 10 minutes before serving to give it time to set.
Top with chopped green onion and/or parsley before serving.
chopped green onion and/or parsley