# What You Need:
→ Vegetables
01 - 3.3 pounds russet potatoes, peeled and thinly sliced
02 - 1 medium yellow onion, finely diced
→ Meats
03 - 12 ounces cooked ham, diced
→ Dairy
04 - 2 cups shredded cheddar cheese
05 - 1 cup shredded mozzarella cheese
06 - 2 cups whole milk
07 - 3 tablespoons unsalted butter
→ Pantry
08 - 3 tablespoons all-purpose flour
09 - 1 teaspoon salt
10 - 1/2 teaspoon black pepper
11 - 1/2 teaspoon garlic powder
12 - 1/2 teaspoon dried thyme (optional)
# How-To Steps:
01 - Preheat oven to 375°F. Grease a 9x13-inch baking dish.
02 - Melt butter in a medium saucepan over medium heat. Add diced onion and cook until translucent, about 3 minutes.
03 - Stir in flour and cook, stirring constantly, for 1 minute.
04 - Gradually whisk in milk, ensuring no lumps. Cook, whisking, until thickened, about 3 to 4 minutes.
05 - Remove from heat. Stir in salt, pepper, garlic powder, and thyme if using. Add 1 cup cheddar and 1/2 cup mozzarella, stirring until melted and smooth.
06 - Layer half the sliced potatoes in the prepared dish. Top with half the ham and pour half the cheese sauce over.
07 - Repeat with remaining potatoes, ham, and cheese sauce.
08 - Sprinkle remaining cheddar and mozzarella evenly over the top.
09 - Cover with foil and bake for 40 minutes.
10 - Remove foil and bake an additional 20 minutes until golden and bubbly.
11 - Allow casserole to rest for 10 minutes to set before serving.