Prep your ingredients: Dice the bacon, chop the onion, mince the garlic, and shred the cheese. Have everything ready to go for a smooth cook.
Crisp the bacon: Add diced bacon to a large skillet over medium heat. Cook until the fat renders and bacon is crisp, 6–8 minutes.
Use a slotted spoon to transfer bacon to a plate. Keep 2–3 tablespoons of bacon fat in the pan.
Sauté aromatics: Add onion to the bacon fat. Cook 3–4 minutes until soft and golden at the edges.
Stir in garlic and cook 30 seconds until fragrant.
Brown the beef: Add ground beef, breaking it up with a spatula. Season with salt, pepper, smoked paprika, cumin, and red pepper flakes if using. Cook until browned, 6–8 minutes.
Build flavor: Stir in Worcestershire (or coconut aminos) and tomato paste.
Mix well to coat the meat. Add beef broth and simmer 2–3 minutes to reduce slightly and concentrate flavor.
Add greens (optional): Stir in spinach or kale and cook 1–2 minutes until just wilted. This adds nutrients without many carbs.
Finish rich: Stir in a tablespoon of butter if you want an extra silky finish.
Taste and adjust salt and pepper.
Add bacon back: Return the crispy bacon to the skillet and stir to combine evenly.
Cheese it: Sprinkle shredded cheese over the top. Reduce heat to low, cover the skillet, and let the cheese melt for 2–3 minutes. Alternatively, broil for 1–2 minutes until bubbly and golden if your skillet is oven-safe.
Garnish and serve: Top with sliced green onions and a dollop of sour cream.
Serve as is, or spoon over cauliflower rice or zucchini noodles for a full plate.