Heat olive oil in a large Dutch oven or heavy-bottomed pot over medium heat.
Add the onion, garlic, bell pepper, and carrot. Cook for 5–6 minutes until softened.
Add the grass-fed ground beef and cook for 6–8 minutes, breaking it into small crumbles until browned.
Stir in the tomato paste and cook for 1 minute.
Add the diced tomatoes, kidney beans, black beans, and beef broth.
Season with chili powder, cumin, smoked paprika, oregano, salt, and black pepper.
Stir well and bring to a gentle boil.
Reduce heat to low, cover partially, and simmer for 30–45 minutes, stirring occasionally.
Taste and adjust seasoning before serving.
Garnish with parsley, cilantro, avocado, or a sprinkle of low-fat cheddar cheese if desired.