Preheat oven – Set oven to 375°F (190°C). Grease a 9x13-inch baking dish.
Sauté aromatics – In a skillet, melt butter. Sauté onion and garlic until softened and fragrant.
Make the cream sauce – Stir in cream, milk, salt, pepper, thyme, and paprika. Simmer 2–3 minutes.
Layer potatoes – Place half the sliced potatoes in the baking dish. Pour half the cream sauce over. Sprinkle with half the cheddar and parmesan. Repeat with remaining potatoes, sauce, and cheese.
Add toppings – Sprinkle cooked bacon or ham on top if desired.
Bake – Cover with foil and bake 40 minutes. Remove foil and bake 20–25 minutes until golden and bubbly.
Serve – Let rest 10 minutes before serving. Garnish with parsley.