Sleeping or laying on top of you could be helping your fur-baby to feel safer and less vulnerable.
Your dog is trying to get extra attention from you. This behavior would be more likely if you have not given your dog attention for a while.
Yes, laying on top of you makes your dog happy. You have the love hormone Oxytocin to thank for that.
Most pets love routine and so the cause of this behavior could be that it is waiting to get something from you.
You have encouraged your dog to do this behavior by giving it love when it does it. If you give it things such as back or belly rubs, when it lays on you, it will likely do it more.