# Directions:
01 - Preheat oven to 350°F. Grease a 9x13 inch baking dish with butter or nonstick spray.
02 - In a large saucepan, melt butter over medium heat. Add onion and cook until softened, about 3–4 minutes. Stir in garlic and cook for 1 minute.
03 - Sprinkle in flour and cook, whisking constantly, for 1–2 minutes to form a roux. Gradually whisk in milk and cream, ensuring no lumps form.
04 - Simmer sauce for 3–4 minutes, stirring until thickened. Season with salt, pepper, and nutmeg. Remove from heat and stir in half of the Gruyère and cheddar cheeses until melted.
05 - Arrange half the sliced potatoes in the prepared baking dish. Top with half the ham and pour over half the cheese sauce. Repeat with remaining potatoes, ham, and sauce.
06 - Sprinkle remaining Gruyère, cheddar, and all the Parmesan cheese evenly over the top.
07 - Cover with foil and bake for 45 minutes.
08 - Remove foil and bake for an additional 25–30 minutes, or until potatoes are tender and top is golden brown.
09 - Let rest for 10 minutes before serving. Garnish with chopped parsley if desired.