Heat oil in a large pot over medium; cook onion and half the garlic about 5 minutes until soft.
Add beef; break up with a wooden spoon and brown thoroughly, about 8-10 minutes. Drain fat.
Stir in chili powder, cumin, paprika, oregano, salt, and pepper; cook 2 minutes until fragrant.
Stir in tomatoes, paste, broth, and beans until combined.
Boil; reduce heat to low, cover, and simmer 2 hours, stirring occasionally.
Add remaining garlic; simmer uncovered 1 more hour, stirring every 15 minutes.
Adjust seasoning; serve hot with preferred toppings.