where($f['scope'])->orderBy('id')->cursor() as $row) hash_update($hash, Payables::canonical((array) $row)."\n"); } $current = hash_final($hash); if ($current !== $prior['scoped_business_fingerprint'] || DB::getSchemaBuilder()->hasTable('ps_payments') || config('supplier_payable_history.synthetic_enabled') !== false) throw new LogicException('Previous financial proof or default guard changed'); $report = ['passed' => true, 'read_only' => true, 'previous_scoped_business_fingerprint_equal' => true, 'scoped_business_fingerprint' => $current, 'temporary_settlement_schema_absent' => true, 'history_default_disabled' => true, 'previous_post_proof_sha256' => hash_file('sha256', $s['root'].'/page-post.json')]; file_put_contents($s['root'].'/evidence-post.json', json_encode($report, JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR)); echo json_encode($report)."\n"; } finally { DB::rollBack(); }