Schedule of Basis and Diluted Earnings Per Share (Details) - USD ($)
3 Months Ended 6 Months Ended
Jun. 30, 2023
Mar. 31, 2023
Jun. 30, 2022
Mar. 31, 2022
Jun. 30, 2023
Jun. 30, 2022
Earnings Per Share [Abstract]            
Net income (loss), as reported $ (8,918,825) $ (5,755,391) $ (2,686,303) $ 11,714,595 $ (14,674,216) $ 9,028,292
Weighted average shares, basic 29,088,159   32,472,251   29,284,175 32,509,664
Dilutive effect of stock options, warrants and RSUs     743,948
Shares used to compute diluted earnings per share 29,088,159   32,472,251   29,284,175 33,253,612
Basic earnings (loss) per share $ (0.31)   $ (0.08)   $ (0.50) $ 0.28
Diluted earnings (loss) per share $ (0.31)   $ (0.08)   $ (0.50) $ 0.27