Preheat the oven to 375 degrees.
Scrub and cut potatoes into evenly sized pieces. Place in a large pot with water about halfway up the height of the potatoes. Turn heat to high until it boils, then turn heat to low and let simmer, covered until the potatoes are fork tender. While the potatoes are cooking, begin the beef mixture.
Once the potatoes are fork tender, drain the water. Transfer potatoes to a large bowl (or leave in the same pot if it is not a non-stick pan or otherwise coated) Add the butter, cream, garlic powder, onion powder, salt and pepper to the potatoes. Using a mixer, combine well and whip for a minute or so until the potatoes are smooth and creamy. Be careful not to over mix, as they may turn sticky. Set aside until beef mixture is done.
Cook the ground beef and onions over a medium heat until almost all of the pink is gone from the meat. Then add the carrots and garlic. Continue to cook for 2-3 minutes.
Combine about ¼ cup of the chicken or beef broth with the cornstarch until no lumps remain. Add the remaining broth to the pan with the beef mixture, then add the cornstarch slurry and vinegar. Season with salt, pepper, thyme, sage, rosemary and garlic powder. Stir to combine and let cook until the sauce has thickened, about 2-3 minutes. Turn off the heat and add the peas and parsley, stir to combine.
Pour the beef mixture into a large casserole dish or a 9 x 13 pan. Top with the mashed potatoes. Sprinkle cheese on top of the mashed potatoes (optional). Place in the oven for about 10 minutes, or until lightly browned. If it isn’t browned enough, place under a high broiler for 3 minutes, watching closely. Remove and enjoy! Sprinkle with additional chopped parsley for serving if you wish.