Glad you solved it.
The issue here comes from
foreach ($recibo->pagamentos as $pagamento) {
$pagamento->pagamento_situacao_id = 2;
}
The reason is that due to the way that PHP handles object references, the original Recibo
entity never gets told that the pagamentos
property has been modified (Because the property has not been directly modified)