authorize('viewAny', Category::class); return View::make('categories.index', [ 'categories' => Category::all(), 'trashedCategories' => Category::onlyTrashed()->get() ]); } public function create() { $this->authorize('create', Category::class); return View::make('categories.create'); } public function store(CategoryRequest $request) { $this->authorize('create', Category::class); Category::create($request->validated()); $request->session()->flash('status', 'Category added!'); return Redirect::route('categories.index'); } public function show(Category $category) { $this->authorize('view', $category); $category->load('programs'); return View::make('categories.show', ['category' => $category]); } public function edit(Category $category) { $this->authorize('update', $category); return View::make('categories.edit', ['category' => $category]); } public function update(CategoryRequest $request, Category $category) { if ($request->has('restore')) { $this->authorize('restore', $category); $category->restore(); $request->session()->flash('status', 'Category restored!'); } else { $this->authorize('update', $category); $category->update($request->validated()); $request->session()->flash('status', 'Category updated!'); } return Redirect::route('categories.index'); } public function destroy(Category $category) { $this->authorize('delete', $category); $category->delete(); Request::session()->flash('status', 'Category deleted!'); return Redirect::route('categories.index'); } }