Callbacks in functional coverage

Hi,
I am having doubt regarding usage of callbacks in functional coverage.
Why do we use callbacks for functional coverage in uvm and what is the preferred approach to implement it.
Any help/opinions would be largely appreciated. Thanks!

Regards,
Amita

In reply to amitam98:

It is highly recommended that you don’t use callbacks as they can be very confusing and can be difficult to debug.

You should adhere to the recommendation of only using the TLM port connections provided by the UVM.