Step 1 Combine the water and salt in a heavy, medium saucepan and bring to a boil. Add the bulgur, stir and return to a boil. Cover and cook over medium-low heat until the water is absorbed, about 5 minutes. Stir in 3 cups milk and bring to a simmer over medium-high heat, stirring often. Cook uncovered over low heat, stirring often, until the bulgur absorbs most of the milk, 12 to 15 minutes.
Step 2 Meanwhile, coarsely chop 2 tablespoons walnuts and 2 tablespoons almonds. Halve the remaining almonds and reserve for garnish. Dice 3 of the apricots. Cut the remaining apricots in thin slices or slivers and reserve for garnish. Grate 2 teaspoons of orange zest. Cut off the remaining orange rind and the pith, and cut the orange in small dice; reserve for garnish.
Step 3Add the sugar and honey to the bulgur mixture and mix well. Add the raisins, diced apricots, garbanzo beans and white beans. Cook over low heat, stirring gently to avoid crushing the beans, until the sugar dissolves and the honey blends in, a few minutes. Remove from the heat. Add the rosewater, grated orange zest and chopped nuts and mix gently. The pudding should be creamy, not soupy and not dry. If it is too thick, stir in more milk by tablespoons and heat through briefly if you want to serve it hot. If you want to serve the pudding cold, make it a little thinner than you like; it thickens as it cools. Taste, and add more rosewater if desired. Add more honey or sugar if desired, and mix gently.
Step 4Serve the pudding warm, cold or at room temperature. At serving time, if the pudding is too thick, gradually stir in milk by tablespoons; if the pudding is chilled overnight, it will thicken considerably and will need more milk. To serve, spoon the pudding into dessert dishes or into a shallow serving bowl and sprinkle with cinnamon. Garnish with apricot slices, pistachios, remaining nuts, strawberries and raspberries, sprinkling them or arranging them decoratively.