'required|string|max:10|unique:branches,code', 'name' => 'required|string|max:255', 'address' => 'nullable|string|max:500', 'phone' => 'nullable|string|max:20', 'email' => 'nullable|email|max:255', 'manager_name' => 'nullable|string|max:255', 'city' => 'nullable|string|max:100', 'state' => 'nullable|string|max:50', 'postal_code' => 'nullable|string|max:10', 'is_active' => 'boolean', ]; } protected $messages = [ 'code.required' => 'Branch code is required.', 'code.unique' => 'This branch code is already taken.', 'name.required' => 'Branch name is required.', 'email.email' => 'Please enter a valid email address.', ]; public function mount() { $this->authorize('create', Branch::class); } public function save() { $this->authorize('create', Branch::class); $this->validate(); try { Branch::create([ 'code' => strtoupper($this->code), 'name' => $this->name, 'address' => $this->address, 'phone' => $this->phone, 'email' => $this->email, 'manager_name' => $this->manager_name, 'city' => $this->city, 'state' => $this->state, 'postal_code' => $this->postal_code, 'is_active' => $this->is_active, ]); session()->flash('success', 'Branch created successfully.'); return redirect()->route('branches.index'); } catch (\Exception $e) { session()->flash('error', 'Failed to create branch: ' . $e->getMessage()); } } public function render() { return view('livewire.branches.create'); } }