> */ public function rules(): array { return [ 'name' => [ 'string', 'max:255', ], 'description' => [ 'nullable', 'string', ], 'is_public' => [ 'boolean', ], 'public_until' => [ 'nullable', 'date_format:Y-m-d\TH:i:s\Z', 'after:now', ], ]; } public function getName(): string { return (string) $this->input('name'); } public function getDescription(): ?string { return $this->input('description'); } public function getIsPublic(): bool { return (bool) $this->input('is_public'); } public function getPublicUntil(): ?Carbon { $publicUntil = $this->input('public_until'); return $publicUntil === null ? null : Carbon::createFromFormat('Y-m-d\TH:i:s\Z', $publicUntil); } }