enum('type', CompanyType::class); $validated = $request->validate([ 'name' => 'required|max:255', 'email' => 'required|email|unique:companies', 'phone' => 'required', 'inn' => 'required|unique:companies', 'legal_address' => 'required', 'type' => Rule::enum(CompanyType::class), 'city_id' => 'required' ]); $request->request->add([ 'secret' => bin2hex(random_bytes(16)), 'status' => 'new' ]); $data = $request->only('name', 'email', 'inn', 'legal_address', 'secret', 'status', 'type', 'phone', 'city_id'); $company = Company::create($data); if (!$company) { return back()->withErrors(['msg' => 'Company creation error'])->withInput(); } $data['callback_url'] = route('company.status.update', [ 'company_id' => $company->id, 'secret' => $company->secret ]); $companyConfirmByBitrix = new SendCompany($company->id, $data); if (!$sender = $companyConfirmByBitrix->send()) { $company->delete(); return back()->withErrors(['msg' => 'Error with bitrix sender'])->withInput(); } return view('company.created'); } }