private function deliver(StateSender $state, $chat) { $chat->messages()->whereNull('delivered_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->save(); }); // Set $state->setChatAsRead($chatId, $userId); if ($chat->isOwner($this->user->id)) { $state->setCarChatAsDelivered($chat->id, $this->user->id); } else { $state->setCarChatAsDelivered($chat->id, null, $chat->receiver_car_id); } }