Heat olive oil in a large pot or Dutch oven over medium-high heat. Add the diced onion and cook for 3–4 minutes until softened.
Add the minced garlic and cook for another 30 seconds until fragrant.
Add the ground beef, breaking it up with a spoon. Cook until browned and no pink remains, about 6–8 minutes. Drain excess fat.
Stir in the chili powder, cumin, smoked paprika, oregano, salt, pepper, and cayenne. Cook for 1 minute to toast the spices.
Add the tomato paste and stir to coat the meat evenly.
Pour in the diced tomatoes, beef broth, and kidney beans. Stir everything together.
Bring to a boil, then reduce heat to low. Simmer uncovered for 30–40 minutes, stirring occasionally, until the chili thickens to your liking.
Taste and adjust seasoning as needed. Serve hot with your favorite toppings.