validate([ 'title' => 'nullable|string|max:255', 'subtitle' => 'nullable|string|max:255', 'description' => 'nullable|string', 'image' => 'nullable|image|max:2048', ]); $data = $request->only(['title', 'subtitle', 'description']); $data['show_image'] = $request->has('show_image'); $page = MyAccountPage::first(); if ($request->hasFile('image')) { if ($page && $page->image && file_exists(public_path('storage/' . $page->image))) { unlink(public_path('storage/' . $page->image)); } $data['image'] = $request->file('image')->store('uploads/my_account_page', 'public'); } elseif ($page && !$request->has('image') && !$request->has('keep_image')) { if ($page->image && file_exists(public_path('storage/' . $page->image))) { unlink(public_path('storage/' . $page->image)); } $data['image'] = null; } if ($page) { $page->update($data); } else { MyAccountPage::create($data); } return redirect()->back()->with('success', 'My Account Page updated successfully!'); } }