# What You Need:
→ Potatoes & Ham
01 - 3.5 lbs Yukon Gold or Russet potatoes, peeled and thinly sliced
02 - 9 oz cooked ham, diced
→ Sauce
03 - 4 tbsp unsalted butter
04 - 1 medium onion, finely chopped
05 - 2 garlic cloves, minced
06 - 1/3 cup all-purpose flour
07 - 3 cups whole milk
08 - 1/2 cup heavy cream
09 - 1 tsp salt
10 - 1/2 tsp black pepper
11 - 1/4 tsp ground nutmeg
→ Cheese
12 - 2 cups shredded Gruyère cheese
13 - 1 cup shredded sharp cheddar cheese
14 - 1/4 cup grated Parmesan cheese
→ Garnish (optional)
15 - 2 tbsp chopped fresh parsley
# Step-by-step guide:
01 - Preheat oven to 350°F. Grease a 9x13 inch baking dish with butter or nonstick spray.
02 - Melt butter in a large saucepan over medium heat. Add chopped onion and cook until softened, about 3 to 4 minutes. Stir in minced garlic and cook for 1 minute.
03 - Sprinkle flour over butter mixture and whisk constantly for 1 to 2 minutes to form a roux. Gradually whisk in whole milk and heavy cream, ensuring the sauce is smooth with no lumps.
04 - Simmer sauce, stirring frequently, until thickened, about 3 to 4 minutes. Season with salt, black pepper, and ground nutmeg. Remove from heat and stir in half of the Gruyère and cheddar cheeses until melted.
05 - Arrange half of the sliced potatoes evenly in the prepared dish. Top with half the diced ham, then pour half of the cheese sauce over. Repeat with remaining potatoes, ham, and sauce.
06 - Sprinkle the remaining Gruyère, cheddar, and all of the Parmesan cheese evenly over the top layer.
07 - Cover the dish with foil and bake for 45 minutes.
08 - Remove foil and continue baking for an additional 25 to 30 minutes until potatoes are tender and the top is golden brown.
09 - Allow to rest for 10 minutes before serving. Garnish with chopped parsley if desired.