Faction::class, 'chat_messages' => 'array', ]; public function archivedPlayerProgressions(): HasMany { return $this->hasMany(ArchivedPlayerProgression::class); } public static function archivedGameExists(string $matchId) { return ArchivedGame::where('id', '=', $matchId)->exists(); } /** * @return ChatMessage[] */ public function getChatMessages(): array { $result = []; foreach ($this->chat_messages as $message) { $result[] = new ChatMessage( $message['gameId'], $message['userId'], Carbon::parse($message['messageTime']), $message['message'], ); } return $result; } }