Set a large Dutch oven or heavy-bottomed pot over medium-high heat. Add 1 tablespoon of canola oil and heat until it begins to shimmer. Place the beef cubes in the pan in a single layer, working in batches if necessary to avoid overcrowding. Sear the meat on all sides until it develops a rich brown crust, locking in its flavor. Remove the browned beef and set it aside on a plate.
Add the remaining tablespoon of canola oil to the same pan. Once heated, add the chopped onion, sliced carrot, and minced garlic. Sauté for about 5 minutes, stirring occasionally, until the onions soften and turn translucent, and the mixture becomes aromatic.
Return the browned beef to the pot and stir to combine. Pour in the water and beef broth, then season with salt, black pepper, thyme, sage, and bay leaves. Add the drained beans and stir gently to distribute all the ingredients evenly. Bring the mixture to a gentle simmer, then reduce the heat to low.
Cover the pot and let the soup cook slowly for 1 1/2 to 2 hours, stirring occasionally, until the beef becomes tender enough to break apart easily with a fork. The beans will absorb the savory broth, creating a hearty, flavorful texture.
Once done, discard the bay leaves and taste the soup, adjusting salt and pepper as needed. Serve hot, with crusty bread on the side for a wholesome, comforting meal.