仕訳のバランスを見たり、バリデーションチェックをしたりと、結構重要。
最初の計画では
$transaction = $fiscalYear->crceateTransaction( 仕訳データ );
を考えていたけど、FIscalYear の責務が重くなる可能性が高いので、TransactionRegistrar サービスクラスを作って、そこで一元管理することとする(もちろん、Transaction::create()すればどこでも作成できるけど、TransactionRegistrarを使うというのが内部ルール)。
$registrar = new TransactionRegistrar();
$transaction = $registrar( $fiscalYear, 仕訳データ );
ただ、これを直接書くのは直感的でないので、FiscalYear のインスタンスメソッド経由で使わせる。
$fiscalYear = HogeHoge::foo();
try{
$transaction = $fiscalYear->registerTransaction( 仕訳データ );
}catch( Exception $e){
// 対応
}