Preheat oven to 375°F.
To make the filling, heat the oil in a 10-inch cast iron skillet over medium heat. Add the onion, mushrooms, and garlic and cook until slightly softened 5-6 minutes.
Add the ground beef and cook, breaking it up with a spoon, until it is browned. Add the salt, pepper, parsley, thyme, rosemary, tomato paste, and Worcestershire sauce. Stir to combine well.
Stir the flour and beef stock together in a small bowl. Pour the mixture into the skillet. Cook a couple of minutes until the sauce thickens. Stir in the frozen peas and carrots and cook another few minutes. Taste the filling and adjust seasoning as needed.
To make the sweet potato topping, pierce the sweet potatoes all over with a fork. Place them on a plate and microwave 8-10 minutes until soft, turning them over halfway through. Let the potatoes cool slightly.
Cut the potatoes in half and scoop out the flesh. Place the flesh in a food processor with the butter, milk, and salt. Purée until smooth. Alternatively, you can mash it all together in a bowl with a potato masher or fork.
Spread the sweet potato topping evenly over the filling, covering the entire surface all the way to the edges. If you don't have a cast iron skillet or oven-safe skillet, you can transfer the filling to a casserole dish before adding the sweet potato topping. Bake the shepherd's pie in the oven 20-25 minutes until filling is warm and topping is lightly browned. Remove from oven and garnish with herbs and sea salt, if desired. Cool 10-15 minutes before serving.