In reply to Harsha vardhan:
I see a different error message in your code.
You have a few weaknesses in your example around modport, clocking block and clk. If you are using a clocking block you do not synchronize on a clock edge!
And I do not understand why you are using the driver callback. It makes your example more complicated as needed.
But the key problem is uvm_callback is an extension of uvm_object.
For registering such a callback you have to use uvm_object_uitils instead of
uvm_component_utils.
See here