function save($flush = false) { try { parent::save($flush); } catch (\MapasCulturais\Exceptions\PermissionDenied $e) { if (!App::i()->isWorkflowEnabled()) { throw $e; } $app = App::i(); $app->disableAccessControl(); $this->status = self::STATUS_PENDING; parent::save($flush); $app->enableAccessControl(); $request = new RequestEventOccurrence(); $request->origin = $this->event; $request->destination = $this->space; $request->eventOccurrence = $this; $request->save(true); throw new \MapasCulturais\Exceptions\WorkflowRequest([$request]); } }