/** * Remove the specified resource from storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function destroy(Request $request, $id) { $this->validate($request, ['action' => 'string|in:delete,restore,force_delete']); $story = Story::withTrashed()->find($id); if (empty($story)) { abort(404); } if ($request->user()->cannot('delete-story', $story)) { abort(403); } switch ($request->input('action')) { case 'restore': $story->restoreWithRelationships(); break; case 'force_delete': $story->forceDeleteWithRelationships(); break; default: $story->deleteWithRelationships(); } }