validate([ 'title' => 'required|string|max:225', 'description' => 'required|string', 'button_url' => 'nullable|url', 'image' => 'nullable|image|mimes:jpeg,png,jpg,webp|max:2048', ]); if ($request->hasFile('image')) { $validated['image'] = $request->file('image')->store('services', 'public'); } Service::create($validated); return redirect()->route('services.index')->with('success', 'Service created successfully'); } public function show(Service $service) { return view('services.show', compact('service')); } public function edit(Service $service) { return view('services.edit', compact('service')); } public function update(Request $request, Service $service) { $validated = $request->validate([ 'title' => 'required|string|max:225', 'description' => 'required|string', 'button_url' => 'nullable|string', 'image' => 'nullable|image|mimes:jpeg,png,jpg,webp|max:2048', ]); if ($request->hasFile('image')) { // Delete old image if ($service->image) { Storage::disk('public')->delete($service->image); } $validated['image'] = $request->file('image')->store('services', 'public'); } $service->update($validated); return redirect()->route('services.index')->with('success', 'Service updated successfully'); } public function destroy(Service $service) { if ($service->image) { Storage::disk('public')->delete($service->image); } $service->delete(); return redirect()->route('services.index')->with('success', 'Service deleted successfully'); } }