*/ protected $fillable = [ 'name', ]; /** * El barrio al que pertenece el pedido. */ public function barrio(): BelongsTo { return $this->belongsTo(Barrio::class); } /** * Los productos que pertenecen al pedido. */ public function productos(): BelongsToMany { return $this->belongsToMany(Producto::class)->withPivot(['cantidad']); } public function productosSinBonos() { return $this->productos()->where('bono',0)->all(); } function bonos() { return $this->productos()->where('bono',1)->all(); } function bonosDeTransporte() : int { $total = 0; foreach ($this->productosSinBonos() as $key => $producto) { $total += $producto->price * $producto->pivot->cantidad; } return 1 + ($total / 500); } }