'👍', self::Heart => '❤️', self::Fire => '🔥', self::Laugh => '😂', self::Clap => '👏', self::Wow => '😮', }; } /** Human-readable label. */ public function label(): string { return match ($this) { self::ThumbsUp => 'Like', self::Heart => 'Love', self::Fire => 'Fire', self::Laugh => 'Haha', self::Clap => 'Clap', self::Wow => 'Wow', }; } /** All valid slugs — used for validation. */ public static function values(): array { return array_column(self::cases(), 'value'); } /** Full UI payload for the frontend. */ public static function asMap(): array { $map = []; foreach (self::cases() as $case) { $map[$case->value] = [ 'slug' => $case->value, 'emoji' => $case->emoji(), 'label' => $case->label(), ]; } return $map; } }