Cook the potatoes: Place cubed potatoes in a large pot, cover with cold water, and add a pinch of salt. Boil over medium-high heat for 15-20 minutes until tender. Drain, then return to the pot. Mash with butter, cream, salt, pepper, and garlic powder until smooth. Keep warm.
Brown the ground beef: Heat the olive oil in a big skillet over medium heat. Cook the ground beef for 6 to 8 minutes, breaking it up until it is completely browned. Drain extra fat if you'd like. Stir in diced onion and garlic, and sauté for 3 minutes until soft.
Prepare the gravy: Sprinkle flour over the beef mixture and stir for 1 minute to cook the flour. Slowly pour in beef broth, stirring to prevent lumps. Add Worcestershire sauce, rosemary, paprika, salt, and pepper. Simmer for 6-8 minutes until thickened.
Assemble and serve: Scoop mashed potatoes onto plates. Ladle the hot ground beef and gravy over the potatoes. Garnish with chopped parsley or chives for a fresh touch, and serve immediately.