Diff between $rose and $posedge in system verilog

In reply to Sunny hirpara:
At a high level there is no difference between $rose and $posedge. $rose returns true or false while $posedge returns an event. $rose can be used in expressions but not $posedge