Heat the olive oil in a large pot or Dutch oven over medium heat. Add the ground beef and cook for 5–7 minutes, breaking it apart as it browns. Drain any excess grease if needed.
Add the diced onion and cook for 3–4 minutes, until softened. Stir in the minced garlic and cook for another 30 seconds.
Sprinkle the flour over the beef mixture and stir well to coat. Slowly pour in the broth, stirring to prevent lumps. Add the diced potatoes, salt, black pepper, smoked paprika, dried parsley, and mustard powder.
Bring the soup to a gentle boil, then reduce the heat and simmer uncovered for 12–15 minutes, or until the potatoes are fork-tender.
Stir in the milk and heavy cream. Cook over low heat for another 3–5 minutes without allowing the soup to boil.
Gradually stir in the shredded cheddar cheese until completely melted and the soup is smooth and creamy.
Ladle the hot soup into bowls and top with crumbled bacon and chopped green onions. Add extra shredded cheddar, if desired, and serve warm.