belongsTo(Proveedor::class); } public function ordenProduccion() { return $this->belongsTo(OrdenProduccion::class); } /* Lógica de negocio */ protected static function booted() { static::saving(function ($tintoreria) { if ($tintoreria->cantidad_recibida !== null) { $tintoreria->perdidas = $tintoreria->cantidad_enviada - $tintoreria->cantidad_recibida; } }); // Cuando vuelve de tintorería → avanzar OP static::updated(function ($tintoreria) { if ( $tintoreria->fecha_recepcion && $tintoreria->cantidad_recibida !== null ) { $tintoreria->ordenProduccion?->avanzarEstado(); } }); } }