Boil potatoes in salted water until fork-tender. Drain and mash with butter, milk, and salt. Set aside.
Heat oil or butter in a large skillet over medium heat. Add ground meat and cook until browned. Drain excess fat if needed.
Add onion, garlic, and carrots to the meat. Cook until softened, about 5–7 minutes.
Stir in the condensed tomato soup, Worcestershire sauce, herbs, salt, and pepper. Simmer for 8–10 minutes until thick and saucy. Stir in peas if using.
Preheat oven to 375°F (190°C). Spread meat mixture into a baking dish. Spoon mashed potatoes evenly over the top. Rough up with a fork for crispy edges. Add cheese if using.
Bake uncovered for 25–30 minutes, or until bubbling and lightly golden on top. Let rest 5 minutes before serving.