Position::withCount('employees')->latest()->get(), ]); } public function create() { return Inertia::render('admin/positions/create'); } public function store(Request $request) { $validated = $request->validate([ 'name' => 'required|string|max:255|unique:positions,name', 'basic_salary' => 'nullable|integer|min:0', ]); Position::create($validated); return redirect()->to('/admin/positions') ->with('success', 'Jabatan berhasil ditambahkan.'); } public function edit(Position $position) { return Inertia::render('admin/positions/edit', [ 'position' => $position ]); } public function update(Request $request, Position $position) { $validated = $request->validate([ 'name' => 'required|string|max:255|unique:positions,name,' . $position->id, 'basic_salary' => 'nullable|integer|min:0', ]); $position->update($validated); return redirect()->to('/admin/positions') ->with('success', 'Jabatan berhasil diperbarui.'); } public function destroy(Position $position) { if ($position->employees()->count() > 0) { return back()->with('error', 'Gagal hapus! Masih ada karyawan dengan jabatan ini.'); } $position->delete(); return back()->with('success', 'Jabatan berhasil dihapus.'); } }