What went wrong was that when I use $user->primaryReceiver()->first(), I got a Receiver returned,
But when I use $user->primaryReceiver on the same $user, even right next to the function call, like, I always got null.

What make things more weird is that no similar problem has occurred on any other relations.
I have struggled with this but still can't figure out.