validate([ 'tanggal' => 'required|date', 'waktu' => 'required|string|max:50', 'tempat' => 'required|string|max:255', 'uraian_kejadian' => 'required|string', 'analisis_capaian' => 'nullable|string', 'foto' => 'nullable|image|mimes:jpg,jpeg,png|max:2048', ]); // 2. Ambil data mentah lalu tambahkan manual $data = $request->all(); $data['siswa_id'] = $siswa_id; $data['guru_id'] = auth()->id(); $data['kejadian_teramati'] = $request->uraian_kejadian; // ISI PAKSA // 3. Upload foto if ($request->hasFile('foto')) { $data['foto'] = $request->file('foto')->store('anekdot', 'public'); } // 4. Simpan (Akan berhasil jika Model sudah diupdate fillable-nya) Anekdot::create($data); return redirect() ->route('perkembangan.show', $siswa_id) ->with('success', 'Catatan anekdot berhasil disimpan!'); } }