Preheat oven at 355° Fahrenheit.
Prep veggies: wash, peel and cut potatoes in cubes. Get cauliflower cut into florets. Chop onion and carrots into small pieces. Mince garlic cloves.
Get 2 separate pots. In 1st one, add potatoes and cover them with cold water. In 2nd pot add 4 cups of cold broth and cauliflower florets. Bring both pots to boil on medium-high heat, then reduce to medium and cook for about 10-15 min or until potatoes and cauliflower are tender when you poke them with tines of fork.
In large skillet, add olive oil, onion and carrots and cook on medium-high heat for about 7-8 min stirring often. Then, add garlic and tomato paste and mix in. Add ground beef, some salt and pepper and continue cooking everything on medium-high heat for about 6-7 min stirring often or until meat is browned and cooked through.
Once cauliflower is ready, reserve about ¼ cup of stock it cooked in. Transfer cauliflower florets with large slotted spoon and ¼ cup stock to blender. Blend until very smooth, it'll look like thick cream, about 45 seconds to 1 minute.
Once potatoes are ready, strain them using colander or large slotted spoon and use potato ricer or masher to mash into large bowl.
Add butter, milk, salt and pepper and blended cauliflower to potatoes and mix until combined.
In baking dish, add the beef mixture as the 1st layer.
Then add mashed potatoes mixture as 2nd layer on top.
Sprinkle cheese on top. Add to oven and bake for 22 to 25min or until cheese is fully melted and top is golden brown. Serve warm.