Preheat the oven to 350 degrees F.
Bring a large pot of water to a boil. Add 1 tablespoon salt to the water, if desired. Add the potatoes and reduce the heat to a simmer. Cook until the potatoes are fork-tender, about 12 minutes. Drain.
Mash the potatoes through a ricer, or by hand, into the pot. Add the milk and 3 tablespoons of the butter, salt to taste and mash until smooth. Set aside.
While the potatoes cook, heat a large skillet over medium heat. Add the beef, 1 tsp salt and 1 tsp garlic powder and cook, breaking up the meat with a wooden spoon, until browned, 5 to 6 minutes. Transfer the beef with a slotted spoon to a large bowl and discard the fat in the skillet.
Heat the olive oil in the same skillet over medium heat. Add the onion saute for 3 min, add celery and carrot and continue to cook, stirring occasionally, until tender, about 3 more minutes. Transfer to the large bowl.
Melt the remaining 2 tablespoons butter in the same skillet, still over medium heat. Add the flour and cook, stirring constantly, until the resulting roux is golden. Add the beef stock and Worcestershire sauce and whisk to thoroughly combine.
Add the beef and vegetable filling to the sauce and stir to combine.
Transfer the filling to 6 to 8 individual ramekins or a large 2 quart casserole dish. Sprinkle with the peas, then spread the mashed potatoes on top. Sprinkle with the cheese.
10 Bake 30 minutes for the large casserole or 15 minutes for individual ramekins or until top is golden and bubbly.