Combine the grain of your choice with 3 cups water in a large saucepan. Bring to a slow boil, then lower the heat, cover, and simmer until the water is absorbed, 35 to 45 minutes. Once the water is absorbed, see if the grain is done to your liking. If still too firm, add ½ cup water and cook until absorbed; repeat as needed. This step can be done ahead of time.
Remove and discard the stem ends and coarse green leaves from the leeks. Use the white and palest green parts only. Cut in half lengthwise, and then slice into half circles. Place in a colander and rinse well, using your hands to separate the rings and make sure that no grit remains.
Heat the oil in a large soup pot. Add the leeks and garlic and cook over medium heat, stirring occasionally, until the leeks have softened. This will take about 10 to 15 minutes.
Add the bouillon cubes and water. Bring to a slow boil, then lower the heat and simmer gently for 10 minutes.
Transfer about half of the solids from the soup pot to a blender or large food processor. Add the tofu or beans and the almond milk, then process until the mixture is velvety smooth. Transfer to the soup pot and stir in with the remaining solids.
Add the mushrooms and enough additional water to give the soup a medium-thick consistency. You may or may not need a whole lot more. Return to a simmer and cook until the mushrooms are done, about 15 minutes.
Add the chopped greens and cooked grain. Cook for 15 minutes longer, or until the greens are tender but still retain some nice color.
Stir in the chopped parsley and dill, then check the consistency again. You can add more water or almond milk if need be. Cook for 5 minutes longer, or until well heated through
If time allows, let the soup stand off the heat for a few minutes to let the flavors blend even further. But if you can’t wait, dig in!