2 pounds russet potatoes – peeled and cut into 1.5-inch chunks
1 tablespoon fine sea salt – for potato water
0.5 cup whole milk
4 tbsp unsalted butter – cut into pieces
1 tbsp olive oil
1 medium onion – finely chopped
1 large carrot – finely chopped
1 rib celery – finely chopped
2 cloves garlic – minced
1.5 pounds ground beef
2 tbsp tomato paste
2 tbsp all-purpose flour
0.5 cup red wine – dry
1 cup beef stock – low-sodium
1.5 tbsp Worcestershire sauce
1 tsp fresh thyme – chopped
1 leaf bay leaf
0.5 tsp black pepper – freshly ground
Instructions
Preheat the oven to 400°F. Put the russet potatoes in a large pot, cover with cold water by 1 inch, add the fine sea salt, and bring to a boil. Reduce to a simmer and cook until very tender when pierced, 15–20 minutes.
While the potatoes cook, heat the olive oil in a large skillet over medium heat. Add the onion, carrot, and celery and cook, stirring, until softened and lightly golden, 7–9 minutes.
Stir in the garlic and fresh thyme and cook until fragrant, about 1 minute.
Add the ground beef and cook, breaking it up, until browned with no pink, 6–8 minutes; spoon off excess fat if needed.
Add the tomato paste; cook, stirring, until it darkens slightly, 1–2 minutes. Sprinkle in the all-purpose flour and stir for 1 minute.
Pour in the red wine and simmer until reduced by about half, 1–2 minutes. Stir in the beef stock, Worcestershire sauce, bay leaf, and black pepper. Bring to a simmer and cook until thick and glossy, 10–15 minutes, stirring occasionally.
Drain the potatoes well and return them to the dry pot over low heat for 30 seconds to evaporate surface moisture. Add the unsalted butter and whole milk and mash until smooth and spreadable.
Taste the meat mixture and mashed potatoes separately and season both to taste. Remove and discard the leaf from the pan. Transfer the meat mixture to a 2- to 2.5-quart baking dish and spread it in an even layer.
Spoon the mashed potatoes over the meat, spreading to the edges to seal; use a fork to rough up the surface.
Bake until the filling is bubbling at the edges and the top is lightly golden, 25–30 minutes. Let stand 10 minutes before serving.