/** * @param CM $customer свежезарегистрированный пользователь * * @return null|\Symfony\Component\HttpFoundation\Cookie */ public function registerInvite(CM $customer) { // уже осуществлялся вход ранее, не обрабатываем if (!$customer->isEmptyAuthAt()) { return false; } // при регистрации должен был сохраниться телефон, если был инвайт, проверим $external = CustomerInviteExternal::wherePhone($customer->phone)->first(); if (!$external || empty($external->owner_id)) { return false; } // нельзя приглашать самого себя if ($external->owner_id == $customer->id) { return false; } Reporter::inviteCodeFound($customer->id, $external->owner_id); $invite = CustomerInvite::create(['customer_id' => $customer->id, 'owner_id' => $external->owner_id, 'source_id' => $external->source_id, 'customer_invite_external_id' => $external->id]); Reporter::inviteCodeRegistered($customer->id, $external->owner_id, $invite->id); return true; }