KondisiTanaman::class, 'serangan_hama' => SeranganHama::class, 'penyakit_tanaman' => PenyakitTanaman::class, 'keparahan_serangan' => KeparahanSerangan::class, 'jenis_hama' => 'array', 'jenis_penyakit' => 'array' ]; public function komoditas() { return $this->belongsTo(Komoditas::class, 'komoditas_id'); } public function jenisKomoditas() { return $this->belongsTo(JenisKomoditas::class, 'jenis_komoditas_id'); } public function varietas() { return $this->belongsTo(Varietas::class, 'varietas_id'); } public function profile() { return $this->belongsTo(Profile::class, 'profile_id'); } public function lahan() { return $this->belongsTo(Lahan::class, 'lahan_id'); } // Untuk trait KembalikanStatusPetaniKeDraf: petani diambil dari lahannya. protected function petaniIdUntukStatus(): ?int { return $this->petani_id ?? self::ingatPerRequest('status_petani.lahan', $this->lahan_id, fn () => Lahan::withoutGlobalScopes()->whereKey($this->lahan_id)->value('petani_id')); } }