Setup: Given that I have a random vector $B\in\mathbb{R}^L$ such that $B\sim\text{Categorical}(\pi)$ where $\pi\in\mathbb{R}^L$ is the probability vector, and another random vector (independent of $B$) $G\in\mathbb{R}^L$ such that $G\sim N(0,M)$ where $M\in\mathbb{R}^{L\times L}$ is non-random.
Question: How do I show that $$ \mathbb{E}\left[(B+M^{-1}G)\mathbb{E}[B|MB+G]^\top\right] =\mathbb{E}[BB^\top]. $$ I don't think the distribution of the random vectors should matter in showing this result. Thanks.
Intuition/Attempt: If we were to look at the each term inside the left-hand-side expectation separately, we can see that $$ \mathbb{E}[B+M^{-1}G]=\mathbb{E}[B], $$ and $$ \mathbb{E}\left[\mathbb{E}[B|MB+G]\right]=\mathbb{E}[B], $$ which lead me to believe that I am quite close to showing the expression that I desire... but I can't seem to show it entirely... My current attempt is: \begin{align*} \mathbb{E}\left[(B+M^{-1}G)\mathbb{E}[B|MB+G]^\top\right] &=\mathbb{E}\left[\mathbb{E}[B+M^{-1}G|MB+G]\cdot\mathbb{E}[B|MB+G]^\top\right], \end{align*} where I would like to use the towering property of expectation but can't seem to find a way to do it...
I think I have managed to get a reasonable answer: \begin{align*} \mathbb{E}\Big[(B+M^{-1}G)\mathbb{E}[B|MB+G]^\top\Big] &= \mathbb{E}\Big[\mathbb{E}[B+M^{-1}G|MB+G]\cdot\mathbb{E}[B^\top|MB+G]\Big] \\ &= \mathbb{E}\Big[\mathbb{E}\Big[\mathbb{E}[B+M^{-1}G|MB+G]B^\top\Big|MB+G\Big]\Big] \\ &\stackrel{(a)}= \mathbb{E}\Big[\mathbb{E}[B+M^{-1}G|MB+G]B^\top\Big] \\ &= \mathbb{E}[(B+M^{-1}G)B^\top] \\ &= \mathbb{E}[BB^\top+M^{-1}GB^\top] \\ &\stackrel{(b)}{=} \mathbb{E}[BB^\top]+M^{-1}\mathbb{E}[G]\mathbb{E}[B^\top] \\ &\stackrel{(c)}{=} \mathbb{E}[BB^\top], \end{align*} where: