I'm trying to create a mask with a nondestructive gradient. So far I have managed to create my shape in a smart object and the masking gradient in another smart object.

My mask looks like this:

The image that I'm trying to mask looks like this:

By setting my image over this gradient smart object, I was able to produce the following:

The setup looks like this:

The problem is that it's also displaying the black from the clipping mask. I have tried turning down the fill on the masking layer but it also hides the image to be masked. I need to make the clipping mask work without displaying itself. I managed to create a bitmap layer mask which produces the desired result (below) but I need a non-destructive solution.

Desired result:

I need a way to not show the clipping mask layer and only use its transparency. I am also open to other solutions that can do the same thing, provided they are non destructive.

How can I create a non destructive mask over my target object, to achieve the effect I have shown in the final image?