belongsTo(OrdenProduccion::class); } public function proveedor() { return $this->belongsTo(Proveedor::class); } /* Lógica de negocio */ protected static function booted() { // Cuando se recibe el proceso static::updated(function ($acabado) { if ( $acabado->fecha_recepcion && $acabado->cantidad_recibida !== null ) { // Validar si ya no quedan procesos pendientes $pendientes = self::where('orden_produccion_id', $acabado->orden_produccion_id) ->whereNull('fecha_recepcion') ->exists(); if (!$pendientes) { $acabado->ordenProduccion?->update([ 'estado' => 'finalizada', ]); } } }); } }