In a large pot, heat the oil over medium heat and sauté the onions, carrots, and celery until they begin to soften and the onions turn translucent, about 5 minutes.
Pour in the chicken stock and water, add garlic, bay leaf, salt, and pepper. Bring to a gentle simmer and let the flavors meld for about 15 minutes.
While the broth gently simmers, make the matzo ball mixture. In a bowl, whisk the eggs with water or stock, then stir in matzo meal and the oil or butter. Season lightly with a pinch of salt.
Cover and refrigerate the matzo ball mixture for at least 15 minutes. This helps the balls hold their shape when cooked.
Gently form the matzo balls using about a tablespoon of mixture for each ball. Roll between your palms to smooth the surface, then set aside on a plate.
Increase the heat of the broth to a gentle boil. Carefully drop the matzo balls into the simmering broth. Reduce the heat to a simmer and cook for 25 to 30 minutes, until the balls are cooked through and fluffy in the middle.
Taste and adjust seasoning if needed. Remove the bay leaf. If the broth needs brightening, a squeeze of lemon can be stirred in at the end.
Ladle the soup into bowls, ensuring each serving has a few matzo balls plus tender vegetables. Serve hot and enjoy this comforting classic.