refresh(); if ($accessRequest->status !== AccessRequestStatus::PENDING) { throw new DomainException('Only pending access requests can be accepted.'); } $output = $this->rconAccessGrantor->grant($accessRequest); DB::transaction(function () use ($accessRequest, $reviewer): void { $accessRequest->forceFill([ 'status' => AccessRequestStatus::ACCEPTED, 'reviewed_by' => $reviewer?->getKey(), 'reviewed_at' => now(), ])->save(); }); return $output; } }