/** * {@inheritdoc} */ public function audit(Auditable $model) { $auditors = $model->getAuditors(); foreach ((array) $auditors as $auditor) { $model = clone $model; // Review audit if (!$this->auditReview($model, $auditor)) { continue; } $report = $this->driver($auditor)->audit($model); // Report audit $this->app->make('events')->fire(new Events\AuditReport($model, $auditor, $report)); } }