latest() ->paginate(10); return Inertia::render('admin/employees/index', [ 'employees' => $employees ]); } public function create() { return Inertia::render('admin/employees/create'); } public function store(StoreEmployeeRequest $request) { DB::transaction(function () use ($request) { $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), 'role' => 'employee', ]); $user->employee()->create([ 'nip' => $request->nip, 'position' => $request->position, 'status' => $request->status, 'join_date' => $request->join_date, ]); }); return redirect()->route('admin.employees.index') ->with('success', 'Karyawan berhasil ditambahkan.'); } public function edit(Employee $employee) { $employee->load('user'); return Inertia::render('admin/employees/edit', [ 'employee' => $employee ]); } public function update(UpdateEmployeeRequest $request, Employee $employee) { DB::transaction(function () use ($request, $employee) { // Update User Data $userData = [ 'name' => $request->name, 'email' => $request->email, ]; if ($request->filled('password')) { $userData['password'] = Hash::make($request->password); } $employee->user->update($userData); // Update Employee Data $employee->update([ 'nip' => $request->nip, 'position' => $request->position, 'status' => $request->status, 'join_date' => $request->join_date, ]); }); return redirect()->route('admin.employees.index') ->with('success', 'Data karyawan diperbarui.'); } public function destroy(Employee $employee) { $employee->user->delete(); return back()->with('success', 'Karyawan dihapus.'); } }