PASS: fresh database integrity PASS: all migrations applied PASS: three RBAC roles seeded PASS: default institution seeded PASS: course created with stable ID PASS: course listing returns the created course PASS: course detail round-trip PASS: course duplication creates a new ID PASS: duplicate overrides offering fields PASS: duplicate clears offering-specific marks PASS: duplicate clears survey tallies PASS: teacher assignment is persisted PASS: teacher assignment can be removed PASS: post-backup change persisted PASS: verified restore returns snapshot data PASS: restored database integrity PASS: course deletion succeeds PASS: deleted course is absent PASS: T&L plan with 14 complete teaching weeks is done PASS: exam week needs no topic, TLO or CO PASS: teaching week without a TLO keeps the T&L plan open PASS: fewer than 10 teaching weeks keeps the T&L plan open PASS: a CO taught in no week keeps the T&L plan open PASS: delivery setting falls back to .env/config PASS: dashboard delivery value overrides .env PASS: saved secret decrypts to the original value PASS: secret is not stored in plain text PASS: describe() reports secrets without their value PASS: describe() never contains the secret PASS: blank secret field keeps the saved secret PASS: blank value removes the override PASS: cleared secret falls back to .env PASS: invalid mail_driver is rejected PASS: invalid smtp_port is rejected PASS: invalid bulk_sms_base_url is rejected PASS: invalid mail_from_name is rejected PHP regression suite completed successfully.