Warm the skillet: Set a large skillet over medium heat and add olive oil or butter.
When it shimmers or melts, add the diced onion. Cook 3–4 minutes until soft and lightly golden.
Add garlic: Stir in the minced garlic and cook 30 seconds until fragrant. Don’t let it brown.
Brown the beef: Add the ground beef.
Season with salt and pepper. Cook, breaking it up with a spoon, until browned and no longer pink, about 5–7 minutes. If there’s excess grease, spoon off most, leaving a tablespoon for flavor.
Season it up: Sprinkle in smoked paprika, dried oregano, and red pepper flakes if using.
Stir for 30 seconds to bloom the spices.
Tomato base: Add tomato paste and cook 1 minute, stirring to coat the beef and deepen the flavor.
Simmer: Pour in the diced tomatoes with their juices and the beef broth. Stir, bring to a gentle simmer, and cook 5–7 minutes to thicken slightly.
Make it creamy: Reduce heat to low. Stir in the heavy cream and Parmesan until smooth and silky.
Taste and adjust salt and pepper.
Add greens (optional): Fold in chopped spinach and cook 1–2 minutes until just wilted.
Finish and serve: Sprinkle with fresh basil or parsley. Serve over cooked pasta or rice, or spoon into bowls with crusty bread. Top with extra Parmesan if you like.