validate([ 'logo' => 'nullable|max:10000|mimes:jpg,png,jpeg', ]); $values = [ //SETTINGS::VALUE => REQUEST-VALUE (coming from the html-form) "SETTINGS::INVOICE:COMPANY_NAME" => "company-name", "SETTINGS::INVOICE:COMPANY_ADDRESS" => "company-address", "SETTINGS::INVOICE:COMPANY_PHONE" => "company-phone", "SETTINGS::INVOICE:COMPANY_MAIL" => "company-mail", "SETTINGS::INVOICE:COMPANY_VAT" => "company-vat", "SETTINGS::INVOICE:COMPANY_WEBSITE" => "company-web", "SETTINGS::INVOICE:PREFIX" => "invoice-prefix" ]; foreach ($values as $key => $value) { $param = $request->get($value); Settings::where('key', $key)->updateOrCreate(['key' => $key], ['value' => $param]); Cache::forget("setting" . ':' . $key); } if ($request->hasFile('logo')) { $request->file('logo')->storeAs('public', 'logo.png'); } return redirect(route('admin.settings.index') . '#invoices')->with('success', __('Invoice settings updated!')); } }