Place the cubed potatoes in a medium pot, cover with water, and bring to a boil. Cook until the potatoes are fork-tender, then drain.
Return the potatoes to the pot. Add the butter, milk, salt, and pepper. Mash until smooth, then stir in the cheddar cheese until melted. Set the mashed potatoes aside.
While the potatoes cook, heat a large skillet over medium heat. Add the ground beef and cook until browned, breaking it up with a spoon.
Add the diced onion and carrots to the skillet. Cook for 5 minutes until the vegetables begin to soften. Stir in the garlic and cook for 1 minute more.
Stir the tomato paste into the meat mixture and cook for 1 minute. Pour in the beef broth, Worcestershire sauce, and thyme. Simmer for 5 minutes until the liquid reduces slightly.
Add the frozen peas and cook for 2 minutes. Season with salt and pepper to taste, then remove the skillet from the heat.
Preheat the oven to 400°F. Spread the meat mixture evenly in a 9x9 baking dish. Spoon the cheddar mashed potatoes over the top and spread them to cover the filling completely.
Bake for 20 minutes until the potato topping is lightly golden at the edges. Let the dish rest for 5 minutes before serving.