Example 5-40. Custom Collection classes for Eloquent models
...
class OrderCollection extends Collection {
public function sumBillableAmount() {
return $this->reduce(function ($carry, $order) {
return $carry + ($order->billable ? $order->amount : 0);
}, 0);
}
}
class Order extends Model {
public function newCollection(array $models = []) {
return new OrderCollection($models);
}
}