Heat olive oil in a large pot over medium heat until shimmering, then add diced onion and bell pepper; cook until softened and slightly translucent, about 5 minutes.
Add garlic and cook for 30 seconds until fragrant, stirring constantly to avoid burning.
Add ground beef and cook until browned, breaking it apart with a spoon until no pink remains.
Stir in tomato paste and spices, cooking for 1–2 minutes until the mixture becomes deep red and aromatic.
Pour in diced tomatoes, beans, and beef broth, stirring until fully combined and slightly thickened
Bring the chili to a gentle boil, then reduce heat to low and let it simmer uncovered for 40–45 minutes.
Stir occasionally as it cooks, allowing the flavors to deepen and the chili to thicken to a hearty consistency.
Taste and adjust seasoning if needed, then remove from heat once the texture is rich and slightly thick.