Preheat oven to 450 degrees. Peel potatoes and cut into 1-inch dice. Add to small pot and cover with cold water. Add salt generously and bring to boil over high heat. Cook until tender, 10-12 minutes. Drain.
While potatoes are cooking, heat cast iron skillet over medium high heat. Add in oil and saute onion 2-3 minutes. Add ground beef and break apart using a wooden spoon. Season with salt and pepper. Stir in garlic and cook until fragrant, 1 minute.
Sprinkle in flour and stir to incorporate. Cook another minute. Whisk in Worcestershire sauce and beef stock. Continue to cook until gravy thickens, 3 minutes more. Remove pan from heat.
To finish potatoes, add in butter, cream cheese, salt and pepper and enough milk to get the consistency you want. Mash until smooth and spread carefully over beef mixture. Bake 7-8 minutes or until potatoes have lightly browned. Sprinkle with chives (optional) and serve.