Rinse and sort the navy beans. Place them in a large bowl and cover with water. Soak for at least 4 hours or overnight. Drain and set aside.
In a large pot or Dutch oven, heat the olive oil over medium heat. Add the diced onion and garlic, sautéing for about 3 minutes until fragrant and translucent.
Add the diced carrots and celery to the pot. Cook for an additional 5 minutes until the vegetables begin to soften.
Stir in the soaked navy beans, vegetable broth (or water), dried thyme, and bay leaf. Bring the mixture to a boil.
Reduce the heat to low and cover the pot. Let the soup simmer for about 45 minutes to 1 hour, or until the beans are tender.
Once the beans are cooked, remove the bay leaf. For a creamier texture, you can blend a portion of the soup using an immersion blender or a regular blender, then return it to the pot.
Add salt and pepper to taste, and stir in the vinegar just before serving.
Adjust the seasoning according to your preference and enjoy your soup.