Callbacks will be executed lazily, if only 3 rows are fetched for database it will
called 3 times, event though there might be more rows to be fetched in the cursor.
Callbacks are stacked in the order they are registered, if you wish to reset the stack
the call this function with the second parameter set to true.
If you wish to remove all decorators from the stack, set the first parameter
to null and the second to true.
### Example
$query->decorateResults(function ($row) {
$row['order_total'] = $row['subtotal'] + ($row['subtotal'] * $row['tax']);
return $row;
});