Heat the Oil: In a large pot or skillet, heat olive oil over medium heat. Add the chopped onion and sauté until it becomes soft and translucent, about 5 minutes.
Add Garlic and Peppers: Stir in the minced garlic, red pepper, and green pepper. Cook for another 2-3 minutes until the peppers soften slightly.
Brown the Beef: Increase the heat to medium-high and add the ground beef. Break it up with a spoon and cook until browned all over, about 8-10 minutes. Drain any excess fat if necessary.
Season the Meat: Stir in the cumin, paprika, chili powder, oregano, and tomato paste. Cook for about 1-2 minutes to let the spices bloom and deepen in flavor.
Add Tomatoes and Stock: Pour in the canned tomatoes and beef stock. Stir to combine, scraping up any browned bits from the bottom of the pan for extra flavor.
Simmer: Bring the mixture to a simmer, then reduce the heat to low. Cover the pot and let the chili cook for 20-25 minutes, stirring occasionally.
Add Beans: After simmering, stir in the drained kidney beans and let the chili cook for another 10-15 minutes, uncovered, until it thickens and all the flavors come together.
Season and Serve: Taste and adjust the seasoning with salt and pepper. Serve hot with optional toppings like sour cream, shredded cheese, chopped cilantro, or lime wedges for extra freshness.