Is God the Author of Evil?

00:00
00:00

God is altogether good and altogether in control. How do sin and suffering fit into this picture? Today, R.C. Sproul continues his study of the Westminster Confession to consider the place of evil under God’s good providence. Get Truths We Confess, R.C. Sproul’s commentary on the Westminster Confession, for your donation of any amount: https://gift.renewingyourmind.org/3706/truths-we-confess   Meet Today’s Teacher:   R.C. Sproul (1939–2017) was known for his ability to winsomely and clearly communicate deep, practical truths from God’s Word. He was founder of Ligonier Ministries, first minister of preaching and teaching at Saint Andrew’s Chapel, first president of Reformation Bible College, and executive editor of Tabletalk magazine.   Meet the Host:   Nathan W. Bingham is vice president of ministry engagement for Ligonier Ministries, executive producer and host of Renewing Your Mind, host of the Ask Ligonier podcast, and a graduate of Presbyterian Theological College in Melbourne, Australia. Nathan joined Ligonier in 2012 and lives in Central Florida with his wife and four children. Renewing Your Mind is a donor-supported outreach of Ligonier Ministries. Explore all of our podcasts: https://www.ligonier.org/podcasts

Released on 6 Nov 2024

Share this page...
SettingsRequest history8.3.17PHP Version199msRequest Duration4MBMemory UsageGET podcasts/{podcast}/episodes/{episode}
status
200 OK
full_url
https://premier.amperative.site/podcasts/renewing-your-mind-with-r-c-sproul/episodes/is-god-the-auth...
action_name
podcasts.episodes.show
controller_action
App\Http\Controllers\PodcastEpisodesController@show
Theme
Open Button Position
Hide Empty Tabs
Autoshow
Reset to defaults
status
200 OK
full_url
https://premier.amperative.site/podcasts/renewing-your-mind-with-r-c-sproul/episodes/is-god-the-auth...
action_name
podcasts.episodes.show
controller_action
App\Http\Controllers\PodcastEpisodesController@show
uri
GET podcasts/{podcast}/episodes/{episode}
scope_bindings
true
controller
App\Http\Controllers\PodcastEpisodesController@show
file
app/Http/Controllers/PodcastEpisodesController.php:20-36
middleware
web
duration
199ms
peak_memory
6MB
response
text/html; charset=UTF-8
request_format
html
request_query
[]
request_request
[]
request_headers
0 of 0
array:15 [ "host" => array:1 [ 0 => "premier.amperative.site" ] "connection" => array:1 [ 0 => "keep-alive" ] "pragma" => array:1 [ 0 => "no-cache" ] "cache-control" => array:1 [ 0 => "no-cache" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "accept-encoding" => array:1 [ 0 => "gzip, deflate, br, zstd" ] ]
request_cookies
[]
response_headers
0 of 0
array:3 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Thu, 19 Jun 2025 13:23:01 GMT" ] ]
session_attributes
0 of 0
array:1 [ "_token" => "ywRmtM8EHPzpx5Yexn14XRJI3HSJBxaSW1ikpH5t" ]
    • Booting (48.16ms)time
    • Application (151ms)time
    • Routing (3.51ms)
    • 1 x Application (75.81%)
      151ms
      1 x Booting (24.14%)
      48.16ms
      1 x Routing (1.76%)
      3.51ms
      62 templates were rendered
      • 1x templates.podcast-episodes.showshow.blade.php#?blade
      • 1x livewire.section-podcast-playersection-podcast-player.blade.php#?blade
      • 1x components.sections.header-playerheader-player.blade.php#?blade
      • 1x components.sections.header-topheader-top.blade.php#?blade
      • 35x components.iconicon.blade.php#?blade
      • 1x components.player.tracktrack.blade.php#?blade
      • 1x components.modals.modal-confirmationmodal-confirmation.blade.php#?blade
      • 3x components.modals.generic-1generic-1.blade.php#?blade
      • 1x components.sharethissharethis.blade.php#?blade
      • 3x components.cards.episodeepisode.blade.php#?blade
      • 1x components.modals.model-show-signupmodel-show-signup.blade.php#?blade
      • 1x components.recommendations.index-bespokeindex-bespoke.blade.php#?blade
      • 1x components.promotional-blockspromotional-blocks.blade.php#?blade
      • 1x components.sections.footerfooter.blade.php#?blade
      • 2x components.form.inputinput.blade.php#?blade
      • 2x components.form.input-groupinput-group.blade.php#?blade
      • 1x components.layouts.mastermaster.blade.php#?blade
      • 1x components.faviconfavicon.blade.php#?blade
      • 1x components.social-metasocial-meta.blade.php#?blade
      • 1x components.modals.searchsearch.blade.php#?blade
      • 1x components.toast-controllertoast-controller.blade.php#?blade
      • 1x components.modals.model-show-thank-youmodel-show-thank-you.blade.php#?blade
      uri
      GET podcasts/{podcast}/episodes/{episode}
      middleware
      web
      scope_bindings
      true
      controller
      App\Http\Controllers\PodcastEpisodesController@show
      as
      podcasts.episodes.show
      file
      app/Http/Controllers/PodcastEpisodesController.php:20-36
      26 statements were executed (14 duplicates)Show only duplicates69.86ms
      • RedirectMiddleware.php#49premier1.13msselect * from `redirects` where `is_regex` = 1 and `redirects`.`deleted_at` is null
        Bindings
        • 0: 1
        Backtrace
        • app/Http/Middleware/RedirectMiddleware.php:49
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:116
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:797
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:776
      • RedirectMiddleware.php#79premier620μsselect * from `redirects` where `is_regex` = 0 and `match` = '/podcasts/renewing-your-mind-with-r-c-sproul/episodes/is-god-the-author-of-evil' and `is_active` = 1 and `redirects`.`deleted_at` is null limit 1
        Bindings
        • 0: 0
        • 1: /podcasts/renewing-your-mind-with-r-c-sproul/episodes/is-god-the-author-of-evil
        • 2: 1
        Backtrace
        • app/Http/Middleware/RedirectMiddleware.php:79
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:116
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:797
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:776
      • DatabaseSessionHandler.php#97premier740μsselect * from `sessions` where `id` = 'yRQEkUMmvzwQbXK1oPsvBZvszk3VEmryIit4oTHT' limit 1
        Bindings
        • 0: yRQEkUMmvzwQbXK1oPsvBZvszk3VEmryIit4oTHT
        Backtrace
        • vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php:97
        • vendor/laravel/framework/src/Illuminate/Session/Store.php:113
        • vendor/laravel/framework/src/Illuminate/Session/Store.php:101
        • vendor/laravel/framework/src/Illuminate/Session/Store.php:85
        • vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:147
      • ContentFamilyTrait.php#42premier1.09msselect * from `podcasts` where `slug` = 'renewing-your-mind-with-r-c-sproul' and `is_active` = 1 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: renewing-your-mind-with-r-c-sproul
        • 1: 1
        Backtrace
        • app/Models/Traits/ContentFamilyTrait.php:42
        • vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php:61
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:947
        • vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
      • ContentFamilyTrait.php#59premier33.32msselect * from `podcast_episodes` where `podcast_episodes`.`podcast_id` = 46 and `podcast_episodes`.`podcast_id` is not null and `slug` = 'is-god-the-author-of-evil' and `podcast_episodes`.`deleted_at` is null order by `published_at` desc limit 1
        Bindings
        • 0: 46
        • 1: is-god-the-author-of-evil
        Backtrace
        • app/Models/Traits/ContentFamilyTrait.php:59
        • vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php:56
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:947
        • vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
      • PromotionalBlockCacheMiddleware.php#24premier4.08msselect * from `promotional_blocks` where (`display_from` is null or `display_from` < '2025-06-19 14:23:01') and (`display_to` is null or `display_to` > '2025-06-19 14:23:01')
        Bindings
        • 0: 2025-06-19 14:23:01
        • 1: 2025-06-19 14:23:01
        Backtrace
        • app/Http/Middleware/PromotionalBlockCacheMiddleware.php:24
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:397
        • vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php:408
        • app/Http/Middleware/PromotionalBlockCacheMiddleware.php:23
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:180
      • PodcastEpisodesController.php#22premier320μsselect exists(select * from `brands` where `brands`.`id` is null and `brands`.`deleted_at` is null) as `exists`
        Backtrace
        • app/Http/Controllers/PodcastEpisodesController.php:22
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • vendor/laravel/framework/src/Illuminate/Routing/Route.php:259
        • vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • PodcastEpisode.php#195premier900μsselect exists(select * from `musicables` where `musicables`.`musicable_type` = 'App\Models\PodcastEpisode' and `musicables`.`musicable_id` = 23137 and `musicables`.`musicable_id` is not null) as `exists`
        Bindings
        • 0: App\Models\PodcastEpisode
        • 1: 23137
        Backtrace
        • app/Models/PodcastEpisode.php:195
        • app/Http/Livewire/SectionPodcastPlayer.php:104
        • app/Http/Livewire/SectionPodcastPlayer.php:43
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:41
      • PodcastEpisode.php#102premier610μsselect * from `podcasts` where `podcasts`.`id` = 46 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: 46
        Backtrace
        • app/Models/PodcastEpisode.php:102
        • app/Models/PodcastEpisode.php:195
        • app/Http/Livewire/SectionPodcastPlayer.php:104
        • app/Http/Livewire/SectionPodcastPlayer.php:43
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
      • Podcast.php#215premier700μsselect exists(select * from `music_genres` inner join `musicables` on `music_genres`.`id` = `musicables`.`music_genre_id` where `musicables`.`musicable_id` = 46 and `musicables`.`musicable_type` = 'App\Models\Podcast' and `music_genres`.`deleted_at` is null) as `exists`
        Bindings
        • 0: 46
        • 1: App\Models\Podcast
        Backtrace
        • app/Models/Podcast.php:215
        • app/Models/PodcastEpisode.php:195
        • app/Http/Livewire/SectionPodcastPlayer.php:104
        • app/Http/Livewire/SectionPodcastPlayer.php:43
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
      • SectionPodcastPlayer.php#108premier510μsselect * from `listenable_progress_items` where `listenable_progress_items`.`listenable_type` = 'App\Models\PodcastEpisode' and `listenable_progress_items`.`listenable_id` = 23137 and `listenable_progress_items`.`listenable_id` is not null and `user_id` is null limit 1
        Bindings
        • 0: App\Models\PodcastEpisode
        • 1: 23137
        Backtrace
        • app/Http/Livewire/SectionPodcastPlayer.php:108
        • app/Http/Livewire/SectionPodcastPlayer.php:43
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:41
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
      • SectionPodcastPlayer.php#168premier9.45msselect * from `podcast_episodes` where `podcast_id` = 46 and `published_at` < '2024-11-06 05:01:00' and `podcast_episodes`.`deleted_at` is null order by `published_at` desc limit 1
        Bindings
        • 0: 46
        • 1: 2024-11-06 05:01:00
        Backtrace
        • app/Http/Livewire/SectionPodcastPlayer.php:168
        • app/Http/Livewire/SectionPodcastPlayer.php:45
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:41
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
      • SectionPodcastPlayer.php#178premier9.36msselect * from `podcast_episodes` where `podcast_id` = 46 and `published_at` > '2024-11-06 05:01:00' and `podcast_episodes`.`deleted_at` is null order by `published_at` asc limit 3
        Bindings
        • 0: 46
        • 1: 2024-11-06 05:01:00
        Backtrace
        • app/Http/Livewire/SectionPodcastPlayer.php:178
        • app/Http/Livewire/SectionPodcastPlayer.php:46
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:41
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
      • PodcastEpisode.php#195premier600μsselect exists(select * from `musicables` where `musicables`.`musicable_type` = 'App\Models\PodcastEpisode' and `musicables`.`musicable_id` = 23137 and `musicables`.`musicable_id` is not null) as `exists`
        Bindings
        • 0: App\Models\PodcastEpisode
        • 1: 23137
        Backtrace
        • app/Models/PodcastEpisode.php:195
        • view::livewire.section-podcast-player:4
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:59
        • vendor/laravel/framework/src/Illuminate/View/View.php:195
      • Podcast.php#215premier540μsselect exists(select * from `music_genres` inner join `musicables` on `music_genres`.`id` = `musicables`.`music_genre_id` where `musicables`.`musicable_id` = 46 and `musicables`.`musicable_type` = 'App\Models\Podcast' and `music_genres`.`deleted_at` is null) as `exists`
        Bindings
        • 0: 46
        • 1: App\Models\Podcast
        Backtrace
        • app/Models/Podcast.php:215
        • app/Models/PodcastEpisode.php:195
        • view::livewire.section-podcast-player:4
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:59
      • Setting.php#20premier570μsselect * from `settings` where `setting_key` = 'web_donation_link' limit 1
        Bindings
        • 0: web_donation_link
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:59
        • vendor/laravel/framework/src/Illuminate/View/View.php:195
      • Setting.php#20premier430μsselect * from `settings` where `setting_key` = 'web_donation_link' limit 1
        Bindings
        • 0: web_donation_link
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:59
        • vendor/laravel/framework/src/Illuminate/View/View.php:195
      • Setting.php#20premier460μsselect * from `settings` where `setting_key` = 'web_donation_link' limit 1
        Bindings
        • 0: web_donation_link
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:59
        • vendor/laravel/framework/src/Illuminate/View/View.php:195
      • PodcastEpisode.php#195premier610μsselect exists(select * from `musicables` where `musicables`.`musicable_type` = 'App\Models\PodcastEpisode' and `musicables`.`musicable_id` = 23137 and `musicables`.`musicable_id` is not null) as `exists`
        Bindings
        • 0: App\Models\PodcastEpisode
        • 1: 23137
        Backtrace
        • app/Models/PodcastEpisode.php:195
        • app/Http/Livewire/SectionPodcastPlayer.php:132
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:41
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
      • Podcast.php#215premier620μsselect exists(select * from `music_genres` inner join `musicables` on `music_genres`.`id` = `musicables`.`music_genre_id` where `musicables`.`musicable_id` = 46 and `musicables`.`musicable_type` = 'App\Models\Podcast' and `music_genres`.`deleted_at` is null) as `exists`
        Bindings
        • 0: 46
        • 1: App\Models\Podcast
        Backtrace
        • app/Models/Podcast.php:215
        • app/Models/PodcastEpisode.php:195
        • app/Http/Livewire/SectionPodcastPlayer.php:132
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:41
      • PodcastEpisode.php#102premier600μsselect * from `podcasts` where `podcasts`.`id` = 46 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: 46
        Backtrace
        • app/Models/PodcastEpisode.php:102
        • app/Models/Traits/ThumbnailImage.php:26
        • app/Models/Traits/ThumbnailImage.php:66
        • view::livewire.section-podcast-player:168
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
      • PodcastEpisode.php#102premier520μsselect * from `podcasts` where `podcasts`.`id` = 46 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: 46
        Backtrace
        • app/Models/PodcastEpisode.php:102
        • app/Models/Traits/ThumbnailImage.php:26
        • app/Models/Traits/ThumbnailImage.php:66
        • view::livewire.section-podcast-player:168
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
      • PodcastEpisode.php#102premier550μsselect * from `podcasts` where `podcasts`.`id` = 46 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: 46
        Backtrace
        • app/Models/PodcastEpisode.php:102
        • app/Models/Traits/ThumbnailImage.php:26
        • app/Models/Traits/ThumbnailImage.php:66
        • view::livewire.section-podcast-player:168
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:84
      • Setting.php#20premier560μsselect * from `settings` where `setting_key` = 'web_login_modal_title' limit 1
        Bindings
        • 0: web_login_modal_title
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:110
        • vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:69
      • Setting.php#20premier520μsselect * from `settings` where `setting_key` = 'web_login_modal_subtitle' limit 1
        Bindings
        • 0: web_login_modal_subtitle
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:110
        • vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:69
      • Setting.php#20premier450μsselect * from `settings` where `setting_key` = 'web_donation_link' limit 1
        Bindings
        • 0: web_donation_link
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:110
        • vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • vendor/livewire/livewire/src/ComponentConcerns/RendersLivewireComponents.php:69
      App\Models\Setting
      6Setting.php#?
      App\Models\Podcast
      5Podcast.php#?
      App\Models\PodcastEpisode
      5PodcastEpisode.php#?
      section-podcast-player #FmXYEXK4qMLZT717tk9C
      array:5 [ "data" => array:10 [ "podcast" => App\Models\Podcast {#2054 #connection: "mysq...
          _token
          ywRmtM8EHPzpx5Yexn14XRJI3HSJBxaSW1ikpH5t
          ClearShow all
          Date ↕MethodURLData
          #12025-06-19 14:23:01GET/podcasts/renewing-your-mind-with-r-c-sproul/episodes/is-god-the-author-of-evil6226161