authorize('view', 'partners'); $partners = Partner::orderBy('position')->paginate(20); return view('dashboard.partners.index', compact('partners')); } public function create() { $this->authorize('create', 'partners'); return view('dashboard.partners.create'); } public function store(StoreRequest $request) { if ($request->hasFile('image')) { $path = $request->file('image')->store('uploads/partners'); } $this->dispatchSync(StoreJob::fromRequest($request, $path)); $this->info(trans('admin.messages.created')); return redirect()->route('dashboard.partners.index'); } public function edit(Partner $partner) { $this->authorize('update', 'partners'); return view('dashboard.partners.edit', compact('partner')); } public function update(UpdateRequest $request, Partner $partner) { if ($request->hasFile('image')) { Storage::delete($partner->image); $path = $request->file('image')->store('uploads/partners'); } else { $path = $partner->image; } $this->dispatchSync(UpdateJob::fromRequest($partner, $request, $path)); $this->info(trans('admin.messages.updated')); return redirect()->route('dashboard.partners.index'); } public function destroy(Partner $partner) { $this->authorize('delete', 'partners'); Storage::delete($partner->image); $partner->delete(); $this->info(trans('admin.messages.deleted')); return redirect()->back(); } }