Field Manual PHP / Laravel reference
← Financial-system patterns

Transaction states

Explicit states distinguish pending, successful, failed, and unknown outcomes.

What it is

Explicit states distinguish pending, successful, failed, and unknown outcomes.

When to use it

Represent financial lifecycle and allowed transitions.

Syntax

pending -> settled | failed
unknown -> settled | failed (after confirmation)

Example

UPDATE transactions SET status = 'settled'
WHERE id = ? AND status = 'pending';
-- Check exactly one row changed and record the transition atomically.

Common mistakes

A timeout does not prove failure; enums alone do not enforce transitions.

Related topics

Browse Financial-system patterns