It’s always best to soak beans before cooking to reduce the phytic acid and make it easier on your digestive system. You can use sprouted and jarred beans, dry beans that you’ve soaked and cooked, or if you’re in a pinch and don’t have time to use soaked beans, you can use organic white cooked beans.
Place the onion in the bowl of a food food processor or blender and process until finely chopped. Transfer the onion to a bowl and set aside. In the now-empty food processor, process the tomatoes and their juice and half of beans until smooth, about 30 seconds; set aside.
Heat a large Dutch oven over medium-high heat for 1 minute. Add the ghee and swirl to coat. Add the beef, 1 teaspoon salt, ½ teaspoon pepper, and onion and cook, breaking up meat with spoon, until any liquid has evaporated and fond begins to form on bottom of pot, 12 to 14 minutes.
Make a well in the center of the pan and add the chili powder, chipotle, coriander, garlic powder, cumin, oregano, ¾ teaspoon salt, and ½ teaspoon pepper and cook, stirring frequently, until fragrant, about 1 minute, and then stir the spices into the meat mixture.
Stir in water, scraping up any browned bits. Stir in tomato mixture and remaining beans. Bring to boil, reduce heat to medium-low, and cover with lid slightly ajar. Simmer until thickened and flavors have blended, about 45 minutes. Season with salt and pepper to taste. Serve.