Difference between with and mergeWith

I want to know what is the difference between with property and mergeWith method in context of model relations.

When should we use with property and when should we use mergeWith method.

Thanks in advance.