'Select status', self::OPERATING => 'Operating', self::CLOSED_TEMP => 'Temporarily Closed', self::SBNO => 'Standing But Not Operating', self::CLOSING => 'Closing', self::CLOSED_PERM => 'Permanently Closed', self::UNDER_CONSTRUCTION => 'Under Construction', self::DEMOLISHED => 'Demolished', self::RELOCATED => 'Relocated', }; } public function isPostClosingStatus(): bool { return in_array($this, [ self::SBNO, self::CLOSED_PERM, ]); } public static function postClosingStatuses(): array { return [ self::SBNO, self::CLOSED_PERM, ]; } public static function values(): array { return array_column(self::cases(), 'value'); } public static function labels(): array { return array_map(fn($case) => $case->label(), self::cases()); } public static function options(): array { return array_combine(self::values(), self::labels()); } public static function postClosingOptions(): array { $statuses = array_filter(self::cases(), fn($case) => $case->isPostClosingStatus()); return array_combine( array_column($statuses, 'value'), array_map(fn($case) => $case->label(), $statuses) ); } }