apiService = $apiService; } public function mount() { // Check role-based access $userInfo = Session::get('userInfo'); if (!$userInfo || $userInfo['role'] != 1) { return redirect()->route('404'); } } public function create() { $this->loading = true; $this->errors = []; try { $this->validate([ 'name' => ['required'], ], [ 'name.required' => 'Fuel name is required!', ]); $params = [ 'name' => $this->name, ]; $response = $this->apiService->post('fuels', $params); if ($response && isset($response['status']) && $response['status'] === 200) { Session::flash('success', 'Fuel created successfully.'); Log::info('Fuel created successfully', ['source' => 'FuelCreate']); return redirect()->route('fuels'); } } catch (\Illuminate\Validation\ValidationException $e) { $this->errors = $e->errors(); Session::flash('error', 'Failed to create fuel: ' . implode(', ', array_merge(...array_values($e->errors())))); Log::error('Validation failed', ['errors' => $e->errors(), 'source' => 'FuelCreate']); } catch (\Exception $e) { Session::flash('error', 'Failed to create fuel: ' . $e->getMessage()); Log::error('Failed to create fuel', ['error' => $e->getMessage(), 'source' => 'FuelCreate']); } finally { $this->loading = false; } } public function render() { return view('livewire.station-locator.fuel-create')->layout('layouts.app', ['title' => 'Add Fuel']); } }