Prepare the potatoes to be boiled for mashed potatoes. Peeling is completely optional. Place prepped potatoes in a saucepot, add salt and cover with water. Place over high heat until boiling, then reduce to a gentle boil. Cook 8-10 minutes or until a knife pierces the potatoes easily. Drain, add butter and place lid on top. Set aside.
Add the prepared veggies to a deep skillet with the oil, pepper and salt (minus the mushrooms and peas). Sauté over medium low heat about 3-5 minutes, or until onions have softened. You don't want to brown the onions.
Add the ground beef, breaking it up as it cooks. You don't want chucks. Add mushrooms. Cook, chopping the meat into little pieces, until beef is thoroughly cooked through.
Sprinkle flour on beef mixture and stir for about 1 minute.
Add the water and increase the heat to medium-high. Stir occasionally until gravy begins to bubble. Once bubbling, stir constantly making sure to scrape the edges and cook until the gravy has thickened up. About 3-5 minutes.
Remove from heat. Stir in peas and top with a lid. Let it rest about 3 minutes. Stir again, add more salt if necessary.
Add the milk to the potatoes and mash to combine. Add more salt if necessary.
Scoop a generous portion of mashed potatoes into a bowl, top with a heaping scoop of the beef/gravy mixture. Enjoy!