In a large skillet, melt the butter. Add the onion, garlic, salt, and pepper. Cook until the onions are translucent, about 5 to 7 minutes.
2 tablespoons unsalted butter, 1 small yellow onion, 3 garlic cloves, 1 teaspoon kosher salt, 1/4 teaspoon black pepper
Whisk in the flour until you no longer see any white streaks. Slowly add the heavy cream. I like to add just a few tablespoons at a time, making sure it is fully absorbed before I add more. Bring the mixture to a low simmer.
3 tablespoons all-purpose flour, 1 1/2 cups heavy cream
Add in the cheese, stirring it in and allowing it to fully melt.
1/2 cup parmesan cheese
Stir in the spinach, a few handfuls at a time. Allow it to wilt before adding in more spinach. Stir the spinach into the sauce so it is fully coated. Taste and season with more salt and pepper as needed (I added about 1/2 a teaspoon more salt and a good dash of black pepper).
32 ounces baby spinach