public void Join(CircleJoinCommand command)
        {
            var memberId = new UserId(command.UserId);
            var member   = userRepository.Find(memberId);

            if (member == null)
            {
                throw new Exception("ユーザーが見つかりませんでした。");
            }

            var id     = new CircleId(command.CircleId);
            var circle = circleRepository.Find(id);

            if (circle == null)
            {
                throw new Exception("サークルが見つかりませんでした。");
            }

            // FIXME ここの人数制限があとあと面倒になる、例えば Invite という関数をこのクラスに増やしたときには、このコードをコピペすることになり管理が面倒になってしまう。
            if (circle.Members.Count >= 29)
            {
                throw new Exception(id.ToString());
            }

            circle.Members.Add(member);
            circleRepository.Save(circle);
        }