Melt ½ Tablespoon (5g) of butter in a large pot over medium heat. Add approximately half of your fresh spinach and cook, stirring frequently, until spinach is wilted. Using tongs or a large slotted spoon, remove wilted spinach to colander and allow to drain.
Add another ½ Tablespoon (5g) of butter to the pot and repeat the step above with the remaining spinach. Remove wilted spinach from pot, combine with first half of spinach, and drain well/squeeze out excess moisture (too much water left behind could make your creamed spinach watery!). Transfer to a cutting board and coarsely chop with a knife. Set aside.
Wipe out the pot that you cooked your spinach in and return to the stovetop over medium heat. Add remaining 4 Tablespoons (57g) of butter to the pot and cook until melted.
Add onion and cook until softened and translucent, about 3-5 minutes.
Add garlic and cook until fragrant, about 30 seconds.
Sprinkle flour over onion and garlic and cook, stirring, until flour is absorbed and beginning to smell nutty/a light golden brown in color.
Gradually, while whisking, whisk the milk into the pot, whisking together milk and flour and breaking up any lumps as you go.
Slowly whisk in cream, then add salt, pepper, paprika and cayenne pepper, if using. Continue to whisk frequently until mixture begins to thicken.
Add cream cheese and parmesan cheese and stir until completely melted.
Return drained, chopped spinach to the pot and stir to combine. Taste test and add more salt and pepper if needed.
Serve immediately.