Rinse and clean the spinach leaves and pat it dry
Melt 3 tablespoons of butter in a medium-sized pot over medium heat. Whisk in the flour and cook for a couple of minutes until it turns light golden.
Add the onion and cook until it becomes transparent (about 2-3 minutes), then add the garlic and cook until it becomes fragrant (about 30 seconds).
Pour the milk and whisk it constantly until it thickens - about 5 minutes. Then, add salt, pepper, nutmeg and cayenne (if using) to season it. If the sauce is too thick, you can add another ¼ cup of milk to it and whisk it through until it reaches your desired thickness.
Melt the remaining butter in a separate pan. Then, add the spinach in batches, wilting each batch before adding the next until all the spinach is wilted. If the pan gets too dry, add a small spoon of water. Alternatively, you can cook the spinach in a pot of boiling water for just one minute. After that, immerse it in a cold water bath to stop the cooking process and squeeze out any excess water from the leaves.
Add the wilted spinach into the creamed sauce, add the cayenne pepper (if using) and season with salt and black pepper. Stir to combine and leave to simmer for about 2 more minutes.
Sprinkle with some more parmesan cheese if desired and serve immediately.