01 - Preheat oven to 400°F.
02 - Boil potatoes in salted water until fork-tender, about 15-20 minutes. Drain, mash with butter and milk, and season with salt and pepper. Set aside.
03 - While potatoes cook, heat olive oil in a large skillet over medium heat. Add onion and carrots; sauté until softened, about 5 minutes.
04 - Stir in garlic and cook for 1 minute. Add ground beef, breaking it up with a spoon. Cook until browned and no longer pink, about 8 minutes.
05 - Add tomato paste, Worcestershire sauce, thyme, and rosemary. Stir well.
06 - Pour in beef broth, bring to a simmer, and cook until slightly thickened, about 5 minutes. Add peas and corn; season with salt and pepper.
07 - Transfer beef mixture to a 9x13-inch baking dish. Spread mashed potatoes evenly over the top. Use a fork to create texture.
08 - Bake for 25 minutes, or until the top is lightly golden and filling is bubbling.
09 - Broil for 2-3 minutes for a crispier potato topping, if desired.
10 - Let rest 5 minutes before serving. Garnish with parsley if using.