Heat oven to 375°F. Grease a 9x13-inch baking dish with butter.
Warm milk and cream in a saucepan until steaming; do not boil. Set aside.
Melt butter in a large saucepan. Soften onions 3 minutes, then stir in garlic.
Whisk in flour and cook 1 minute to form a blond roux.
Gradually whisk in warm milk mixture. Simmer, stirring, until thickened and smooth.
Remove from heat. Stir in cheddar, Gruyere, half the Parmesan, thyme, paprika, salt, and pepper.
Arrange half the potatoes in the dish, slightly overlapping. Spoon over half the cheese sauce.
Layer remaining potatoes and cover with the rest of the sauce. Cover tightly with foil.
Bake 30 minutes. Uncover, sprinkle remaining Parmesan, and bake 20–30 minutes until tender and golden.
Rest 10 minutes before slicing. Garnish with extra thyme if desired.
Notes
Variation: Swap half the cheddar for smoked Gouda or add a pinch of nutmeg to the sauce. Make-ahead tip: Assemble up to one day ahead, cover, and refrigerate. Bake an extra 10–15 minutes from cold.This recipe is an original creation inspired by classic Cheesy Scalloped Potatoes Recipe flavors. All ingredient ratios and instructions are independently developed.