Pour 2 cups dried pinto beans into a large colander, sorting through and discarding any stones or debris. Rinse thoroughly under cold water. Transfer the beans to a large bowl, cover with water (about 2 to 3 inches above the beans), and remove any floating beans. Soak at room temperature for at least 8 hours or overnight. After soaking, drain and rinse the beans.
Heat a large heavy skillet or pot over medium-high heat. Add 1 tablespoon olive oil and allow it to heat for about 30 seconds. Add the diced onion and cook for 5 to 7 minutes, stirring occasionally, until softened.
Stir in 3 cloves minced garlic, 1/2 teaspoon ground cumin, 1/2 teaspoon salt, and 1/4 teaspoon cayenne pepper Cook for 1 minute, stirring frequently, until the spices become fragrant.
Add the soaked, drained pinto beans and pour in 8 cups water. Bring the mixture to a boil over high heat.
Once boiling, reduce the heat to a low simmer. Cook uncovered for about 1 hour and 30 minutes, or until the beans are tender and starting to break apart. Stir occasionally, and if necessary, add more water.
Taste and adjust seasoning as needed. Serve hot, garnished with 1/4 cup chopped fresh cilantro.
Notes
The beans should be cooked until most of the liquid is absorbed, but you may have some liquid left depending on how much the beans absorb during cooking. If there is excess liquid and you prefer a thicker consistency, you can drain some of the liquid at the end. However, if you like them more brothy, you can serve them as is.