Add the potatoes and cauliflower to a large pot and fill with enough water to cover them by 1 inch.Cover and bring to a boil, remove the lid and then reduce the heat to keep it at a low simmer so that they don't boil over. Cook for 15-20 minutes until fork tender.Reserve 1 cup of the potato water and then drain the rest of the water off.Use a hand masher and mash the potato chunks until nearly smooth. Then add in the butter, ½ teaspoon salt, ½ teaspoon pepper and ¼ cup of the reserved potato water.Mix and add additional potato water as needed and then set aside.
Make the Filling
Add the ground beef, thyme, ½ teaspoon each salt and pepper to a large skillet. Cook over medium heat for about 5 minutes, stirring and crumbling, until cooked through. Drain excess grease if needed.
Add the onion to the pan with the meat and cook for 4-5 minutes until softened. Add the garlic and cook for an additional minute. Stir in the tomato paste, vinegar, thyme and vegetables and cook for 2-3 minutes.
Combine and Cook
Spread the meat mixture out evenly in the skillet. Scoop the mashed potato mixture over top and spread into an even layer.
Cook on medium-low for 10-15 minutes to allow meat and potatoes to combine flavors.
Serve.
Notes
LeftoversStore leftovers in an airtight container in the refrigerator for up to 4 days or freeze for up to 3 months. Reheat in the microwave or in the oven at 350 F until heated through.