Bring a large pot of salted water to a boil. Add the elbow macaroni and cook it according to package instructions until al dente. Make sure not to overcook! Nobody wants mushy pasta.
Once cooked, drain the pasta, but don’t rinse. You want to keep that starch, which helps the cheese sauce cling later. Toss the pasta in a little olive oil to prevent sticking while you prepare your sauce.
In a large saucepan, melt the butter over medium heat. Add the olive oil and then toss in the finely diced onion.
Sauté the onions for about five minutes until they turn translucent and slightly soft. This step is crucial as it builds the base flavor of your cheese sauce.
Sprinkle the flour over the sautéed onions. This mixture, known as a roux, will help thicken your sauce. Stir continuously for about one to two minutes until the flour is well combined and a bit golden. This step ensures that you don’t end up with a raw flour taste in your mac and cheese.
Slowly pour in the milk and heavy cream while whisking constantly. This helps prevent lumps in your sauce. Add the bay leaf, salt, garlic powder, and thyme. Bring the mixture to a gentle simmer. The beauty of this step is the creamy consistency that starts to develop.
Once your mixture has thickened slightly, reduce the heat to low and start melting in the sharp cheddar cheese. I typically add it in batches, stirring to combine. The cheese should melt smoothly into the sauce, creating a deliciously creamy texture.
Remove the bay leaf. Now, add your cooked pasta straight into the cheesy sauce. Stir well to ensure every piece of macaroni is coated in that velvety goodness. If you prefer a thicker consistency, you can let it cook on low for a few extra minutes.
At this point, you can transfer the mac and cheese into a serving dish, or even better, individual ramekins. I often sprinkle a dash of extra cheese on top and pop it under the broiler for a few minutes until golden and bubbling. That brassy crust is everything!