Brown the beef. Heat oil in a large skillet over medium-high. Add ground beef, season with salt and pepper, and cook until nicely browned, breaking it into crumbles. Drain excess fat if needed to keep the chili from getting greasy.
Sauté the aromatics. In the same pan, add onion and bell pepper.
Cook 3–4 minutes until softened. Stir in garlic for 30 seconds until fragrant.
Bloom the spices. Add chili powder, cumin, smoked paprika, chipotle or cayenne, oregano, and cocoa powder to the pan. Stir for 30–60 seconds to release flavors.
Stir in tomato paste. Mix tomato paste into the aromatics and spices for 1 minute.
This step caramelizes the paste and deepens the flavor.
Transfer to the crockpot. Add the browned beef, spiced onion-pepper mixture, diced tomatoes, beef broth, and bay leaf to the slow cooker. Stir well.
Set and forget. Cook on Low for 6–8 hours or High for 3–4 hours. The longer, the better for melding flavors.
Finish and adjust. Remove the bay leaf.
Stir in apple cider vinegar. Taste and adjust salt, pepper, and heat. If you want it thicker, remove the lid for the last 30–45 minutes to reduce.
Serve with keto-friendly toppings. Add sour cream, grated cheddar, and avocado for healthy fats.
Garnish with cilantro, green onions, or jalapeño slices.