*/ class CreateIncidentUpdateCommandHandler { /** * The authentication guard instance. * * @var \Illuminate\Contracts\Auth\Guard */ protected $auth; /** * Create a new report incident update command handler instance. * * @param \Illuminate\Contracts\Auth\Guard $auth * * @return void */ public function __construct(Guard $auth) { $this->auth = $auth; } /** * Handle the report incident command. * * @param \CachetHQ\Cachet\Bus\Commands\IncidentUpdate\CreateIncidentUpdateCommand $command * * @return \CachetHQ\Cachet\Models\IncidentUpdate */ public function handle(CreateIncidentUpdateCommand $command) { $data = [ 'incident_id' => $command->incident->id, 'status' => $command->status, 'message' => $command->message, 'user_id' => $command->user->id, ]; // Create the incident update. $update = IncidentUpdate::create($data); // Update the original incident with the new status. execute(new UpdateIncidentCommand( $command->incident, null, $command->status, null, null, null, null, null, null, null, null, [] )); event(new IncidentUpdateWasReportedEvent($this->auth->user(), $update)); return $update; } }