private function read(StateSender $state, $chat) { $chat->messages()->whereNull('viewed_at')->where('user_id', '!=', $this->user->id)->get()->each(function ($message) { if (!$message->delivered_at) { $message->delivered_at = Carbon::now(); } if (!$message->viewed_at) { $message->viewed_at = Carbon::now(); } $message->viewed_at = Carbon::now(); $message->save(); }); if ($chat->isOwner($this->user->id)) { $state->setCarChatAsRead($chat->id, $this->user->id); } else { $state->setCarChatAsRead($chat->id, null, $chat->receiver_car_id); } }