Start by heating up the olive oil in a large pot over medium-high heat. Once the oil is shimmering, add the diced onion. Cook it for 3–4 minutes until it becomes soft and translucent.
Add the minced garlic to the pot and cook for an additional 1–2 minutes until fragrant.
Add the ground beef to the pot, breaking it up with a wooden spoon as it cooks. Cook for about 5–7 minutes until the beef is browned and no longer pink. Drain off any excess fat if needed.
Sprinkle in the chili powder, cumin, smoked paprika, and cayenne pepper (if using). Stir everything well so that the beef and onions are coated with spices. Let them cook for 1–2 minutes.
Stir in the tomato paste, ensuring it's mixed well with the beef and spices. Cook for another 2–3 minutes.
Pour in the diced tomatoes along with beef broth and salt and pepper to taste. Stir everything together until combined. Bring this mixture to a simmer; then lower the heat and let it cook for about 20–25 minutes.
After simmering, add in both kidney beans and black beans. Stir well to combine everything. Let your chili simmer again for another 10–15 minutes.
Taste your chili one last time before serving! Adjust seasoning as needed by adding more salt, pepper, or chili powder.
Ladle it into bowls! Top each serving with your favorite toppings like cheese or avocado if desired.