NOTE: I prepare and bake this dish all in my cast iron pan. If you don't have a cast iron pan simply use a saute pan to make the meat mixture and transfer to a greased 9 by 9 or 10 by 10 pan (loaf or pie pan also works) and bake it in that.
Preheat the oven to 400 degrees.
In a large cast iron pan (or medium skillet if you aren't using a cast iron pan), heat 2 tablespoons of olive oil on medium-high heat. Add the onions and saute for about 5 minutes or until they are translucent.
Add the ground beef and saute until cooked through and no longer pink.
Add the garlic, pepper, parsley, tomato paste, salt, and flour. Saute, stirring constantly, for about 2 minutes to create a thick paste (often called a roux).
Stir in the broth, veggies, and Worcestershire sauce, scraping the bottom of the pan to get off any little bits.
Bring to a gentle boil and remove from the heat. (If you are using a baking pan, transfer the meat mixture to your baking pan.) This, my friends, is your delicious homemade gravy!
In a separate container, stir together (you may need to use a small bowl, sometimes the potatoes come in a large enough package to simply mix them in the package) the potatoes, cheese, garlic powder, and salt.
Spread the potato mixture on top of the meat mixture in the cast iron pan or 10 by 10 pan, if using instead.
Use a fork to create cross hatches (like the edge of a pie crust or a peanut butter cookie top) so that you'll get nice browning on top.
Bake at 400 degrees, uncovered, for about 30 minutes. Broil, if needed, for an additional 5 minutes or until golden and brown on top. Note: if your pan is quite full it is wise to put a baking dish under it to catch anything that might spill over and make a mess.
Sprinkle with fresh parsley and serve.